/* Lovix v404 Single System CSS Bundle
   This file freezes the current working visual layer into one stable cascade.
   No v401/v325 Spark controllers are loaded by this build.
*/

/* ==== lovix-overrides-v322.css ==== */
/* Lovix v322 cleaned runtime overrides. Concatenated in original load order. */


/* ==== lovix-scroll-gate.css ==== */
/* Lovix v177 单向滚动门 · 进度条 + 转场（仅交互层，不改版面） */
#lovix-gate-bar{
  position:fixed; left:0; bottom:0; width:100%; height:2px;
  background:rgba(0,0,0,0.06); z-index:99999; pointer-events:none;
  opacity:0; transition:opacity .25s ease;
}
#lovix-gate-bar > i{
  display:block; height:100%; width:0%;
  background:#FF7518; border-radius:0 2px 2px 0;
  transition:width .08s linear;
}
/* 攒力上移用 transform，小过渡让回弹更顺 */
.world-map-hero{ transition:transform .12s ease-out; }

/* EXIT='slide'：把首屏临时提为全屏盖板再向上掀走，露出下方工作台 */
.world-map-hero.lovix-gate-cover{
  position:fixed !important; inset:0 !important; z-index:9999 !important;
  transition:transform .6s cubic-bezier(.7,0,.2,1), opacity .6s ease !important;
  will-change:transform,opacity;
}
.world-map-hero.lovix-gate-cover.lovix-gate-up{
  transform:translateY(-100%) !important; opacity:0 !important;
}
/* EXIT='fade'：原地柔和淡出 */
.world-map-hero.lovix-gate-fade{
  transition:opacity .45s ease !important;
}

/* v178 no-jump fix: 首屏掀开时，先把工作台预对齐到 React 切换后的最终位置 */
body.lovix-gate-prealign .dashboard-reveal-bridge{
  display:none !important;
}
body.lovix-gate-prealign .dashboard-workspace .dashboard-content-anchor > div:nth-child(2){
  transform:translateY(-85px) !important;
}
body.lovix-gate-prealign .dashboard-workspace .dashboard-content-anchor > div:nth-child(2) > div:first-child{
  margin-top:54px !important;
}

/* ==========================================================================
   Lovix v184 · Selected Account 右侧板防飞出修复（运行时 CSS，不改主 bundle）
   问题来源：关系板右侧 SELECTED ACCOUNT 在滚动时会被原组件切成 fixed z-30，
   left/top 由运行时测量写入。滚动或首屏翻页后容易脱离关系板，看起来“飞走”。
   修复：只锁定关系板右侧 2xl 独立槽位里的 fixed 子层，让它始终回到网格列内。
   不影响真正的抽屉 / 弹窗（它们是 fixed right-0 / z-50）。
   ========================================================================== */
@media (min-width: 1536px){
  .hidden.\32xl\:block.self-start.min-h-\[1px\] > .fixed.z-30,
  .lovix-selected-account-anchor-fix{
    position: relative !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    width: 100% !important;
    max-width: 100% !important;
    z-index: 2 !important;
  }
}

html, body{
  overflow-x: hidden;
}


/* ==== lovix-task-card-refined-v2.css ==== */
/* ======================================================================
   Lovix v218 · Tasks page refined light-card experiment v2
   User directions:
   - 4 cards per row on desktop
   - remove top strip
   - stronger type hierarchy
   - no circular progress visual
   - note moved lower / more breathing room
   - overall more spacious and precise
   ====================================================================== */

.lvtt-page .lvtt-board{
  grid-template-columns:minmax(0,1fr) 300px !important;
  gap:28px !important;
  padding:30px 28px 32px !important;
  background:#FFFFFF !important;
  border:1px solid #E6E6E6 !important;
  border-radius:28px !important;
  box-shadow:0 10px 24px rgba(0,0,0,.02) !important;
}

.lvtt-page .lvtt-section-head{margin-bottom:18px !important;}
.lvtt-page .lvtt-desc{
  font-size:11px !important;
  line-height:18px !important;
  color:#9B9B9B !important;
  margin-top:6px !important;
}

/* four compact cards */
.lvtt-page .lvtt-list{
  display:grid !important;
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
  gap:14px !important;
  align-items:stretch !important;
}

.lvtt-page .lvtt-row{
  position:relative !important;
  display:flex !important;
  flex-direction:column !important;
  min-height:224px !important;
  height:100% !important;
  padding:16px 16px 14px !important;
  border-radius:24px !important;
  border:1px solid #ECECEC !important;
  background:#FFFFFF !important;
  box-shadow:0 5px 12px rgba(0,0,0,.016) !important;
  overflow:hidden !important;
  cursor:pointer !important;
}

.lvtt-page .lvtt-row:nth-child(4n+1){background:linear-gradient(180deg,#FFFFFF 0%,#FBFCF7 100%) !important;}
.lvtt-page .lvtt-row:nth-child(4n+2){background:linear-gradient(180deg,#FFFFFF 0%,#FFFDF7 100%) !important;}
.lvtt-page .lvtt-row:nth-child(4n+3){background:linear-gradient(180deg,#FFFFFF 0%,#FCFCFC 100%) !important;}
.lvtt-page .lvtt-row:nth-child(4n){background:linear-gradient(180deg,#FFFFFF 0%,#FBFBFB 100%) !important;}

/* remove top strip */
.lvtt-page .lvtt-row::before{display:none !important;content:none !important;}

.lvtt-page .lvtt-row:hover{
  transform:translateY(-1px) !important;
  border-color:#E2E8DA !important;
  box-shadow:0 8px 18px rgba(0,0,0,.03) !important;
}
.lvtt-page .lvtt-row.selected{
  border-color:#DDE9B6 !important;
  box-shadow:0 0 0 1px rgba(207,220,40,.24),0 8px 18px rgba(0,0,0,.03) !important;
}

.lvtt-page .lvtt-row-main{
  display:grid !important;
  grid-template-columns:34px minmax(0,1fr) !important;
  gap:10px 12px !important;
  align-items:start !important;
  flex:1 1 auto !important;
}

.lvtt-page .lvtt-avatar{
  width:34px !important;
  height:34px !important;
  border-radius:999px !important;
  border:1px solid #EAEAEA !important;
  background:#F6F6F6 !important;
  font-size:11px !important;
  font-weight:650 !important;
  box-shadow:none !important;
}

/* make the main text block vertically structured */
.lvtt-page .lvtt-row-main > .min-w-0{
  display:flex !important;
  flex-direction:column !important;
  min-height:112px !important;
}

.lvtt-page .lvtt-task-title{
  font-size:13.5px !important;
  line-height:19px !important;
  font-weight:650 !important;
  color:#171717 !important;
  display:-webkit-box !important;
  -webkit-line-clamp:2 !important;
  -webkit-box-orient:vertical !important;
  overflow:hidden !important;
  white-space:normal !important;
  min-height:38px !important;
  letter-spacing:-.012em !important;
}

.lvtt-page .lvtt-important{
  width:6px !important;
  height:6px !important;
  margin-left:6px !important;
}

.lvtt-page .lvtt-meta{
  margin-top:7px !important;
  font-size:10.5px !important;
  line-height:15px !important;
  color:#989898 !important;
  white-space:normal !important;
  display:-webkit-box !important;
  -webkit-line-clamp:2 !important;
  -webkit-box-orient:vertical !important;
  overflow:hidden !important;
}

/* note goes lower with more breathing room */
.lvtt-page .lvtt-note{
  margin-top:auto !important;
  padding-top:14px !important;
  border:none !important;
  background:transparent !important;
  font-size:10.5px !important;
  line-height:16px !important;
  color:#B1B1B1 !important;
  white-space:normal !important;
  display:-webkit-box !important;
  -webkit-line-clamp:2 !important;
  -webkit-box-orient:vertical !important;
  overflow:hidden !important;
  min-height:44px !important;
}

/* footer: status + percentage pill, no circular chart */
.lvtt-page .lvtt-row-main > .lvtt-row-right{
  grid-column:1 / -1 !important;
  display:grid !important;
  grid-template-columns:minmax(0,1fr) auto !important;
  grid-template-areas:
    "status ring"
    "actions actions" !important;
  gap:12px !important;
  align-items:center !important;
  width:100% !important;
  margin-top:10px !important;
}

.lvtt-page .lvtt-status{
  grid-area:status !important;
  width:max-content !important;
  max-width:100% !important;
  height:28px !important;
  padding:0 12px !important;
  border-radius:999px !important;
  font-size:11px !important;
  font-weight:650 !important;
}

/* transform the progress button into a percentage pill */
.lvtt-page .lvtt-row-right > button.relative{
  grid-area:ring !important;
  justify-self:end !important;
  width:auto !important;
  min-width:44px !important;
  height:28px !important;
  padding:0 10px !important;
  border-radius:999px !important;
  background:#FFFFFF !important;
  border:1px solid #ECECEC !important;
  box-shadow:none !important;
}
.lvtt-page .lvtt-row-right > button.relative svg{display:none !important;}
.lvtt-page .lvtt-row-right > button.relative > span{
  position:static !important;
  font-size:11px !important;
  font-weight:650 !important;
  color:#66752A !important;
}

.lvtt-page .lvtt-row-actions{
  grid-area:actions !important;
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:7px !important;
  width:100% !important;
  opacity:1 !important;
}

.lvtt-page .lvtt-mini,
.lvtt-page .lvtt-step{
  height:28px !important;
  border-radius:999px !important;
  border:1px solid #ECECEC !important;
  background:#FFFFFF !important;
  color:#7C7C7C !important;
  font-size:10.5px !important;
  font-weight:600 !important;
}

.lvtt-page .lvtt-mini:hover,
.lvtt-page .lvtt-step:hover{
  background:#F9FBF5 !important;
  border-color:#DDE9B6 !important;
  color:#465313 !important;
}

.lvtt-page .lvtt-rail{
  display:grid !important;
  grid-template-columns:1fr auto auto !important;
  gap:8px !important;
  align-items:center !important;
  margin:14px 0 0 !important;
  padding-top:12px !important;
  border-top:1px solid #F1F1F1 !important;
}

.lvtt-page .lvtt-track{
  height:6px !important;
  border-radius:999px !important;
  background:#F7F7F7 !important;
  border:1px solid #F0F0F0 !important;
}
.lvtt-page .lvtt-fill{
  background:linear-gradient(90deg,#E6D73E,#C5DB36,#99C53E) !important;
}

/* timeline calmer and slightly smaller */
.lvtt-page .lvtt-timeline{
  background:#FBFBFB !important;
  border:1px solid #ECECEC !important;
  border-radius:24px !important;
  padding:22px 18px !important;
  max-height:660px !important;
  box-shadow:none !important;
}
.lvtt-page .lvtt-line{
  margin-top:18px !important;
  padding-left:0 !important;
  display:flex !important;
  flex-direction:column !important;
  gap:12px !important;
}
.lvtt-page .lvtt-line::before{display:none !important;}
.lvtt-page .lvtt-titem{
  position:relative !important;
  padding:14px 14px 14px 34px !important;
  border-radius:20px !important;
  border:1px solid #EDEDED !important;
  background:#FFFFFF !important;
  box-shadow:none !important;
}
.lvtt-page .lvtt-dot{
  left:13px !important;
  top:18px !important;
  width:10px !important;
  height:10px !important;
  border:2px solid #FFFFFF !important;
}
.lvtt-page .lvtt-time{
  font-size:10px !important;
  letter-spacing:.06em !important;
  color:#A5A5A5 !important;
}
.lvtt-page .lvtt-tname{
  font-size:11.5px !important;
  line-height:17px !important;
  font-weight:650 !important;
  display:-webkit-box !important;
  -webkit-line-clamp:2 !important;
  -webkit-box-orient:vertical !important;
  overflow:hidden !important;
}
.lvtt-page .lvtt-tmeta{
  margin-top:5px !important;
  font-size:10px !important;
  line-height:14px !important;
  color:#9A9A9A !important;
}

/* responsive */
@media(max-width:1600px){
  .lvtt-page .lvtt-board{grid-template-columns:minmax(0,1fr) 286px !important;}
  .lvtt-page .lvtt-list{grid-template-columns:repeat(4,minmax(0,1fr)) !important;}
}
@media(max-width:1420px){
  .lvtt-page .lvtt-list{grid-template-columns:repeat(3,minmax(0,1fr)) !important;}
}
@media(max-width:1280px){
  .lvtt-page .lvtt-board{grid-template-columns:1fr !important;}
  .lvtt-page .lvtt-list{grid-template-columns:repeat(2,minmax(0,1fr)) !important;}
}
@media(max-width:760px){
  .lvtt-page .lvtt-list{grid-template-columns:1fr !important;}
  .lvtt-page .lvtt-row{min-height:208px !important;}
}


/* ==== lovix-tasks-fixed-visual.css ==== */
/* ======================================================================
   Lovix v220 · Fixed Task Execution Queue Visual
   Locked from user's editor variables. No visual editor / no panel.
   ====================================================================== */

/* Lovix task locked visual variables · v221 home margin aligned */
:root{
  --lvte-wrap-max: 1560px;
  --lvte-wrap-pad-top: 34px;
  /* Keep task page horizontal gutter identical to homepage/global shell. */
  --lvte-wrap-pad-x: var(--lovix-content-gutter);
  --lvte-wrap-pad-bottom: 72px;
  --lvte-wrap-x: 0px;
  --lvte-wrap-y: 0px;
  --lvte-wrap-scale: 1;
  --lvte-board-x: 0px;
  --lvte-board-y: 0px;
  --lvte-board-scale: 1;
  --lvte-board-gap: 28px;
  --lvte-timeline-width: 300px;
  --lvte-board-pad-top: 30px;
  --lvte-board-pad-right: 28px;
  --lvte-board-pad-bottom: 32px;
  --lvte-board-pad-left: 28px;
  --lvte-board-radius: 28px;
  --lvte-board-border-width: 1px;
  --lvte-board-bg: #FFFFFF;
  --lvte-board-border: #E6E6E6;
  --lvte-board-shadow-y: 10px;
  --lvte-board-shadow-blur: 24px;
  --lvte-board-shadow-alpha: 0.02;
  --lvte-head-x: 0px;
  --lvte-head-y: 0px;
  --lvte-head-mb: 18px;
  --lvte-title-count-gap: 10px;
  --lvte-h2-size: 17px;
  --lvte-h2-line: 20px;
  --lvte-h2-weight: 650;
  --lvte-h2-letter: 0px;
  --lvte-h2-color: #171717;
  --lvte-desc-mt: 6px;
  --lvte-desc-size: 11px;
  --lvte-desc-line: 18px;
  --lvte-desc-color: #9B9B9B;
  --lvte-count-h: 24px;
  --lvte-count-pad-x: 9px;
  --lvte-count-size: 10px;
  --lvte-count-letter: 0.08em;
  --lvte-count-radius: 999px;
  --lvte-count-border-width: 1px;
  --lvte-count-bg: #F9F9F9;
  --lvte-count-border: #E6E6E6;
  --lvte-count-color: #8A8A8A;
  --lvte-list-cols: 4;
  --lvte-list-gap: 16px;
  --lvte-list-x: 0px;
  --lvte-list-y: 0px;
  --lvte-card-x: 0px;
  --lvte-card-y: 0px;
  --lvte-card-scale: 1;
  --lvte-card-min-h: 231px;
  --lvte-card-pad-top: 18px;
  --lvte-card-pad-right: 18px;
  --lvte-card-pad-bottom: 20px;
  --lvte-card-pad-left: 16px;
  --lvte-card-radius: 24px;
  --lvte-card-border-width: 1px;
  --lvte-card-hover-lift: 1px;
  --lvte-card-shadow-y: 5px;
  --lvte-card-shadow-blur: 12px;
  --lvte-card-shadow-alpha: 0.016;
  --lvte-card-hover-shadow-y: 8px;
  --lvte-card-hover-shadow-blur: 18px;
  --lvte-card-selected-ring: 1px;
  --lvte-card-selected-alpha: 0.24;
  --lvte-card-border: #ECECEC;
  --lvte-card-hover-border: #E2E8DA;
  --lvte-card-selected-border: #DDE9B6;
  --lvte-card-bg-top: #FFFFFF;
  --lvte-card-bg-1: #FBFCF7;
  --lvte-card-bg-2: #FFFDF7;
  --lvte-card-bg-3: #FCFCFC;
  --lvte-card-bg-4: #FBFBFB;
  --lvte-avatar-col: 34px;
  --lvte-row-gap-x: 12px;
  --lvte-row-gap-y: 10px;
  --lvte-row-main-x: 0px;
  --lvte-row-main-y: 0px;
  --lvte-avatar-size: 34px;
  --lvte-avatar-radius: 999px;
  --lvte-avatar-border-width: 1px;
  --lvte-avatar-font: 11px;
  --lvte-avatar-weight: 650;
  --lvte-avatar-x: 0px;
  --lvte-avatar-y: 0px;
  --lvte-avatar-scale: 1;
  --lvte-avatar-bg: #F6F6F6;
  --lvte-avatar-border: #EAEAEA;
  --lvte-avatar-color: #171717;
  --lvte-text-block-min-h: 112px;
  --lvte-text-block-x: 1px;
  --lvte-text-block-y: 0px;
  --lvte-task-title-size: 13.5px;
  --lvte-task-title-line: 18.5px;
  --lvte-task-title-weight: 640;
  --lvte-task-title-letter: -0.012em;
  --lvte-task-title-min-h: 38px;
  --lvte-title-lines: 2;
  --lvte-title-x: 0px;
  --lvte-title-y: 0px;
  --lvte-task-title-color: #171717;
  --lvte-important-size: 6px;
  --lvte-important-gap: 6px;
  --lvte-important-color: #FF7518;
  --lvte-meta-mt: 2px;
  --lvte-meta-size: 10.5px;
  --lvte-meta-line: 15px;
  --lvte-meta-lines: 2;
  --lvte-meta-x: 0px;
  --lvte-meta-y: 0px;
  --lvte-meta-color: #a3a3a3;
  --lvte-note-pad-top: 14px;
  --lvte-note-min-h: 44px;
  --lvte-note-size: 9.5px;
  --lvte-note-line: 16.5px;
  --lvte-note-lines: 2;
  --lvte-note-x: 0px;
  --lvte-note-y: 0px;
  --lvte-note-color: #ababab;
  --lvte-footer-mt: 10px;
  --lvte-footer-gap: 12px;
  --lvte-footer-x: 0px;
  --lvte-footer-y: 0px;
  --lvte-status-h: 26px;
  --lvte-status-pad-x: 9px;
  --lvte-status-radius: 999px;
  --lvte-status-size: 10px;
  --lvte-status-weight: 650;
  --lvte-status-x: 0px;
  --lvte-status-y: 0px;
  --lvte-percent-min-w: 44px;
  --lvte-percent-h: 26px;
  --lvte-percent-pad-x: 10px;
  --lvte-percent-radius: 999px;
  --lvte-percent-border-width: 1px;
  --lvte-percent-size: 10.5px;
  --lvte-percent-weight: 610;
  --lvte-percent-x: 0px;
  --lvte-percent-y: 0px;
  --lvte-percent-bg: #FFFFFF;
  --lvte-percent-border: #ECECEC;
  --lvte-percent-color: #66752A;
  --lvte-actions-gap: 7px;
  --lvte-actions-x: 0px;
  --lvte-actions-y: 0px;
  --lvte-action-h: 26px;
  --lvte-action-pad-x: 10px;
  --lvte-action-radius: 999px;
  --lvte-action-border-width: 1px;
  --lvte-action-size: 10.5px;
  --lvte-action-weight: 600;
  --lvte-action-bg: #FFFFFF;
  --lvte-action-border: #ECECEC;
  --lvte-action-color: #7C7C7C;
  --lvte-action-hover-bg: #F9FBF5;
  --lvte-action-hover-border: #c4d298;
  --lvte-action-hover-color: #465313;
  --lvte-rail-mt: 14px;
  --lvte-rail-pad-top: 12px;
  --lvte-rail-gap: 8px;
  --lvte-rail-border-width: 1px;
  --lvte-rail-x: 0px;
  --lvte-rail-y: 0px;
  --lvte-track-h: 6px;
  --lvte-track-radius: 999px;
  --lvte-track-border-width: 1px;
  --lvte-step-h: 21px;
  --lvte-step-pad-x: 10px;
  --lvte-step-radius: 999px;
  --lvte-step-border-width: 1px;
  --lvte-step-size: 10px;
  --lvte-step-weight: 600;
  --lvte-rail-border: #F1F1F1;
  --lvte-track-bg: #F7F7F7;
  --lvte-track-border: #F0F0F0;
  --lvte-fill-1: #E6D73E;
  --lvte-fill-2: #C5DB36;
  --lvte-fill-3: #99C53E;
  --lvte-step-bg: #FFFFFF;
  --lvte-step-border: #ECECEC;
  --lvte-step-color: #7C7C7C;
  --lvte-timeline-x: 0px;
  --lvte-timeline-y: 0px;
  --lvte-timeline-scale: 1;
  --lvte-timeline-max-h: 660px;
  --lvte-timeline-pad-top: 22px;
  --lvte-timeline-pad-right: 18px;
  --lvte-timeline-pad-bottom: 22px;
  --lvte-timeline-pad-left: 18px;
  --lvte-timeline-radius: 24px;
  --lvte-timeline-border-width: 1px;
  --lvte-timeline-shadow-y: 0px;
  --lvte-timeline-shadow-blur: 0px;
  --lvte-timeline-shadow-alpha: 0;
  --lvte-timeline-bg: #FBFBFB;
  --lvte-timeline-border: #ECECEC;
  --lvte-timeline-h2-size: 17px;
  --lvte-timeline-h2-color: #171717;
  --lvte-timeline-desc-size: 11px;
  --lvte-timeline-desc-color: #9B9B9B;
  --lvte-line-mt: 18px;
  --lvte-line-gap: 12px;
  --lvte-line-x: 0px;
  --lvte-line-y: 0px;
  --lvte-titem-x: 0px;
  --lvte-titem-y: 0px;
  --lvte-titem-pad-top: 14px;
  --lvte-titem-pad-right: 14px;
  --lvte-titem-pad-bottom: 14px;
  --lvte-titem-pad-left: 34px;
  --lvte-titem-radius: 20px;
  --lvte-titem-border-width: 1px;
  --lvte-titem-shadow-y: 0px;
  --lvte-titem-shadow-blur: 0px;
  --lvte-titem-shadow-alpha: 0;
  --lvte-titem-bg: #FFFFFF;
  --lvte-titem-border: #EDEDED;
  --lvte-dot-left: 13px;
  --lvte-dot-top: 18px;
  --lvte-dot-size: 10px;
  --lvte-dot-border-width: 2px;
  --lvte-dot-ring: 1px;
  --lvte-dot-x: 0px;
  --lvte-dot-y: 0px;
  --lvte-dot-border: #FFFFFF;
  --lvte-dot-ring-color: #E6E6E6;
  --lvte-time-size: 10px;
  --lvte-time-letter: 0.06em;
  --lvte-time-x: 0px;
  --lvte-time-y: 0px;
  --lvte-time-color: #A5A5A5;
  --lvte-tname-mt: 0px;
  --lvte-tname-size: 11.5px;
  --lvte-tname-line: 17px;
  --lvte-tname-weight: 650;
  --lvte-tname-lines: 2;
  --lvte-tname-x: 0px;
  --lvte-tname-y: 0px;
  --lvte-tname-color: #171717;
  --lvte-tmeta-mt: 5px;
  --lvte-tmeta-size: 10px;
  --lvte-tmeta-line: 14px;
  --lvte-tmeta-x: 0px;
  --lvte-tmeta-y: 0px;
  --lvte-tmeta-color: #9A9A9A;
}

/* ======================================================================
   Lovix v221 · Task Execution Queue Fixed Visual · Home Margin Aligned
   Scope: /tasks-preview only. No editor; fixed visual CSS only
   ====================================================================== */

.lvtt-page .lvtt-wrap{
  max-width:var(--lvte-wrap-max, var(--lovix-content-max)) !important;
  padding-top:var(--lvte-wrap-pad-top, 34px) !important;
  padding-right:var(--lvte-wrap-pad-x, var(--lovix-content-gutter)) !important;
  padding-bottom:var(--lvte-wrap-pad-bottom, 72px) !important;
  padding-left:var(--lvte-wrap-pad-x, var(--lovix-content-gutter)) !important;
  transform:translate(var(--lvte-wrap-x, 0px), var(--lvte-wrap-y, 0px)) scale(var(--lvte-wrap-scale, 1)) !important;
  transform-origin:top center !important;
}

.lvtt-page .lvtt-board{
  grid-template-columns:minmax(0,1fr) var(--lvte-timeline-width, 300px) !important;
  gap:var(--lvte-board-gap, 28px) !important;
  padding:var(--lvte-board-pad-top, 30px) var(--lvte-board-pad-right, 28px) var(--lvte-board-pad-bottom, 32px) var(--lvte-board-pad-left, 28px) !important;
  background:var(--lvte-board-bg, #FFFFFF) !important;
  border-width:var(--lvte-board-border-width, 1px) !important;
  border-style:solid !important;
  border-color:var(--lvte-board-border, #E6E6E6) !important;
  border-radius:var(--lvte-board-radius, 28px) !important;
  box-shadow:0 var(--lvte-board-shadow-y, 10px) var(--lvte-board-shadow-blur, 24px) rgba(0,0,0,var(--lvte-board-shadow-alpha, .02)) !important;
  transform:translate(var(--lvte-board-x, 0px), var(--lvte-board-y, 0px)) scale(var(--lvte-board-scale, 1)) !important;
  transform-origin:top left !important;
}

.lvtt-page .lvtt-section-head{
  margin-bottom:var(--lvte-head-mb, 18px) !important;
  transform:translate(var(--lvte-head-x, 0px), var(--lvte-head-y, 0px)) !important;
}
.lvtt-page .lvtt-title-row{gap:var(--lvte-title-count-gap, 10px) !important;}
.lvtt-page .lvtt-h2{
  font-size:var(--lvte-h2-size, 17px) !important;
  line-height:var(--lvte-h2-line, 20px) !important;
  font-weight:var(--lvte-h2-weight, 650) !important;
  color:var(--lvte-h2-color, #171717) !important;
  letter-spacing:var(--lvte-h2-letter, 0px) !important;
}
.lvtt-page .lvtt-desc{
  margin-top:var(--lvte-desc-mt, 6px) !important;
  font-size:var(--lvte-desc-size, 11px) !important;
  line-height:var(--lvte-desc-line, 18px) !important;
  color:var(--lvte-desc-color, #9B9B9B) !important;
}
.lvtt-page .lvtt-count{
  height:var(--lvte-count-h, 24px) !important;
  padding:0 var(--lvte-count-pad-x, 9px) !important;
  border-radius:var(--lvte-count-radius, 999px) !important;
  border-width:var(--lvte-count-border-width, 1px) !important;
  border-color:var(--lvte-count-border, #E6E6E6) !important;
  background:var(--lvte-count-bg, #F9F9F9) !important;
  color:var(--lvte-count-color, #8A8A8A) !important;
  font-size:var(--lvte-count-size, 10px) !important;
  letter-spacing:var(--lvte-count-letter, .08em) !important;
}

.lvtt-page .lvtt-list{
  grid-template-columns:repeat(var(--lvte-list-cols, 4), minmax(0,1fr)) !important;
  gap:var(--lvte-list-gap, 14px) !important;
  transform:translate(var(--lvte-list-x, 0px), var(--lvte-list-y, 0px)) !important;
}

.lvtt-page .lvtt-row{
  min-height:var(--lvte-card-min-h, 224px) !important;
  padding:var(--lvte-card-pad-top, 16px) var(--lvte-card-pad-right, 16px) var(--lvte-card-pad-bottom, 14px) var(--lvte-card-pad-left, 16px) !important;
  border-radius:var(--lvte-card-radius, 24px) !important;
  border-width:var(--lvte-card-border-width, 1px) !important;
  border-style:solid !important;
  border-color:var(--lvte-card-border, #ECECEC) !important;
  box-shadow:0 var(--lvte-card-shadow-y, 5px) var(--lvte-card-shadow-blur, 12px) rgba(0,0,0,var(--lvte-card-shadow-alpha, .016)) !important;
  transform:translate(var(--lvte-card-x, 0px), var(--lvte-card-y, 0px)) scale(var(--lvte-card-scale, 1)) !important;
  transform-origin:top center !important;
}
.lvtt-page .lvtt-row:nth-child(4n+1){background:linear-gradient(180deg,var(--lvte-card-bg-top, #FFFFFF) 0%,var(--lvte-card-bg-1, #FBFCF7) 100%) !important;}
.lvtt-page .lvtt-row:nth-child(4n+2){background:linear-gradient(180deg,var(--lvte-card-bg-top, #FFFFFF) 0%,var(--lvte-card-bg-2, #FFFDF7) 100%) !important;}
.lvtt-page .lvtt-row:nth-child(4n+3){background:linear-gradient(180deg,var(--lvte-card-bg-top, #FFFFFF) 0%,var(--lvte-card-bg-3, #FCFCFC) 100%) !important;}
.lvtt-page .lvtt-row:nth-child(4n){background:linear-gradient(180deg,var(--lvte-card-bg-top, #FFFFFF) 0%,var(--lvte-card-bg-4, #FBFBFB) 100%) !important;}
.lvtt-page .lvtt-row:hover{
  border-color:var(--lvte-card-hover-border, #E2E8DA) !important;
  box-shadow:0 var(--lvte-card-hover-shadow-y, 8px) var(--lvte-card-hover-shadow-blur, 18px) rgba(0,0,0,var(--lvte-card-hover-shadow-alpha, .03)) !important;
  transform:translate(var(--lvte-card-x, 0px), calc(var(--lvte-card-y, 0px) - var(--lvte-card-hover-lift, 1px))) scale(var(--lvte-card-scale, 1)) !important;
}
.lvtt-page .lvtt-row.selected{
  border-color:var(--lvte-card-selected-border, #DDE9B6) !important;
  box-shadow:0 0 0 var(--lvte-card-selected-ring, 1px) rgba(207,220,40,var(--lvte-card-selected-alpha, .24)), 0 var(--lvte-card-hover-shadow-y, 8px) var(--lvte-card-hover-shadow-blur, 18px) rgba(0,0,0,var(--lvte-card-hover-shadow-alpha, .03)) !important;
}

.lvtt-page .lvtt-row-main{
  grid-template-columns:var(--lvte-avatar-col, 34px) minmax(0,1fr) !important;
  gap:var(--lvte-row-gap-y, 10px) var(--lvte-row-gap-x, 12px) !important;
  transform:translate(var(--lvte-row-main-x, 0px), var(--lvte-row-main-y, 0px)) !important;
}
.lvtt-page .lvtt-avatar{
  width:var(--lvte-avatar-size, 34px) !important;
  height:var(--lvte-avatar-size, 34px) !important;
  border-radius:var(--lvte-avatar-radius, 999px) !important;
  border-width:var(--lvte-avatar-border-width, 1px) !important;
  border-color:var(--lvte-avatar-border, #EAEAEA) !important;
  background:var(--lvte-avatar-bg, #F6F6F6) !important;
  color:var(--lvte-avatar-color, #171717) !important;
  font-size:var(--lvte-avatar-font, 11px) !important;
  font-weight:var(--lvte-avatar-weight, 650) !important;
  transform:translate(var(--lvte-avatar-x, 0px), var(--lvte-avatar-y, 0px)) scale(var(--lvte-avatar-scale, 1)) !important;
}
.lvtt-page .lvtt-row-main > .min-w-0{
  min-height:var(--lvte-text-block-min-h, 112px) !important;
  transform:translate(var(--lvte-text-block-x, 0px), var(--lvte-text-block-y, 0px)) !important;
}
.lvtt-page .lvtt-task-title{
  min-height:var(--lvte-task-title-min-h, 38px) !important;
  font-size:var(--lvte-task-title-size, 13.5px) !important;
  line-height:var(--lvte-task-title-line, 19px) !important;
  font-weight:var(--lvte-task-title-weight, 650) !important;
  color:var(--lvte-task-title-color, #171717) !important;
  letter-spacing:var(--lvte-task-title-letter, -.012em) !important;
  -webkit-line-clamp:var(--lvte-title-lines, 2) !important;
  transform:translate(var(--lvte-title-x, 0px), var(--lvte-title-y, 0px)) !important;
}
.lvtt-page .lvtt-important{
  width:var(--lvte-important-size, 6px) !important;
  height:var(--lvte-important-size, 6px) !important;
  margin-left:var(--lvte-important-gap, 6px) !important;
  background:var(--lvte-important-color, #FF7518) !important;
}
.lvtt-page .lvtt-meta{
  margin-top:var(--lvte-meta-mt, 7px) !important;
  font-size:var(--lvte-meta-size, 10.5px) !important;
  line-height:var(--lvte-meta-line, 15px) !important;
  color:var(--lvte-meta-color, #989898) !important;
  -webkit-line-clamp:var(--lvte-meta-lines, 2) !important;
  transform:translate(var(--lvte-meta-x, 0px), var(--lvte-meta-y, 0px)) !important;
}
.lvtt-page .lvtt-note{
  padding-top:var(--lvte-note-pad-top, 14px) !important;
  margin-top:var(--lvte-note-mt, auto) !important;
  min-height:var(--lvte-note-min-h, 44px) !important;
  font-size:var(--lvte-note-size, 10.5px) !important;
  line-height:var(--lvte-note-line, 16px) !important;
  color:var(--lvte-note-color, #B1B1B1) !important;
  -webkit-line-clamp:var(--lvte-note-lines, 2) !important;
  transform:translate(var(--lvte-note-x, 0px), var(--lvte-note-y, 0px)) !important;
}

.lvtt-page .lvtt-row-main > .lvtt-row-right{
  gap:var(--lvte-footer-gap, 12px) !important;
  margin-top:var(--lvte-footer-mt, 10px) !important;
  transform:translate(var(--lvte-footer-x, 0px), var(--lvte-footer-y, 0px)) !important;
}
.lvtt-page .lvtt-status{
  height:var(--lvte-status-h, 28px) !important;
  padding:0 var(--lvte-status-pad-x, 12px) !important;
  border-radius:var(--lvte-status-radius, 999px) !important;
  font-size:var(--lvte-status-size, 11px) !important;
  font-weight:var(--lvte-status-weight, 650) !important;
  transform:translate(var(--lvte-status-x, 0px), var(--lvte-status-y, 0px)) !important;
}
.lvtt-page .lvtt-row-right > button.relative{
  min-width:var(--lvte-percent-min-w, 44px) !important;
  height:var(--lvte-percent-h, 28px) !important;
  padding:0 var(--lvte-percent-pad-x, 10px) !important;
  border-radius:var(--lvte-percent-radius, 999px) !important;
  background:var(--lvte-percent-bg, #FFFFFF) !important;
  border-width:var(--lvte-percent-border-width, 1px) !important;
  border-color:var(--lvte-percent-border, #ECECEC) !important;
  transform:translate(var(--lvte-percent-x, 0px), var(--lvte-percent-y, 0px)) !important;
}
.lvtt-page .lvtt-row-right > button.relative > span{
  font-size:var(--lvte-percent-size, 11px) !important;
  font-weight:var(--lvte-percent-weight, 650) !important;
  color:var(--lvte-percent-color, #66752A) !important;
}
.lvtt-page .lvtt-row-actions{
  gap:var(--lvte-actions-gap, 7px) !important;
  transform:translate(var(--lvte-actions-x, 0px), var(--lvte-actions-y, 0px)) !important;
}
.lvtt-page .lvtt-mini{
  height:var(--lvte-action-h, 28px) !important;
  border-radius:var(--lvte-action-radius, 999px) !important;
  border-width:var(--lvte-action-border-width, 1px) !important;
  border-color:var(--lvte-action-border, #ECECEC) !important;
  background:var(--lvte-action-bg, #FFFFFF) !important;
  color:var(--lvte-action-color, #7C7C7C) !important;
  font-size:var(--lvte-action-size, 10.5px) !important;
  font-weight:var(--lvte-action-weight, 600) !important;
  padding:0 var(--lvte-action-pad-x, 10px) !important;
}
.lvtt-page .lvtt-mini:hover{
  background:var(--lvte-action-hover-bg, #F9FBF5) !important;
  border-color:var(--lvte-action-hover-border, #DDE9B6) !important;
  color:var(--lvte-action-hover-color, #465313) !important;
}

.lvtt-page .lvtt-rail{
  gap:var(--lvte-rail-gap, 8px) !important;
  margin-top:var(--lvte-rail-mt, 14px) !important;
  padding-top:var(--lvte-rail-pad-top, 12px) !important;
  border-top-width:var(--lvte-rail-border-width, 1px) !important;
  border-top-color:var(--lvte-rail-border, #F1F1F1) !important;
  transform:translate(var(--lvte-rail-x, 0px), var(--lvte-rail-y, 0px)) !important;
}
.lvtt-page .lvtt-track{
  height:var(--lvte-track-h, 6px) !important;
  border-radius:var(--lvte-track-radius, 999px) !important;
  background:var(--lvte-track-bg, #F7F7F7) !important;
  border-width:var(--lvte-track-border-width, 1px) !important;
  border-color:var(--lvte-track-border, #F0F0F0) !important;
}
.lvtt-page .lvtt-fill{
  background:linear-gradient(90deg,var(--lvte-fill-1, #E6D73E),var(--lvte-fill-2, #C5DB36),var(--lvte-fill-3, #99C53E)) !important;
}
.lvtt-page .lvtt-step{
  height:var(--lvte-step-h, 28px) !important;
  border-radius:var(--lvte-step-radius, 999px) !important;
  border-width:var(--lvte-step-border-width, 1px) !important;
  border-color:var(--lvte-step-border, #ECECEC) !important;
  background:var(--lvte-step-bg, #FFFFFF) !important;
  color:var(--lvte-step-color, #7C7C7C) !important;
  font-size:var(--lvte-step-size, 10.5px) !important;
  font-weight:var(--lvte-step-weight, 600) !important;
  padding:0 var(--lvte-step-pad-x, 10px) !important;
}

.lvtt-page .lvtt-timeline{
  width:var(--lvte-timeline-panel-width, auto) !important;
  max-height:var(--lvte-timeline-max-h, 660px) !important;
  padding:var(--lvte-timeline-pad-top, 22px) var(--lvte-timeline-pad-right, 18px) var(--lvte-timeline-pad-bottom, 22px) var(--lvte-timeline-pad-left, 18px) !important;
  border-radius:var(--lvte-timeline-radius, 24px) !important;
  border-width:var(--lvte-timeline-border-width, 1px) !important;
  border-style:solid !important;
  border-color:var(--lvte-timeline-border, #ECECEC) !important;
  background:var(--lvte-timeline-bg, #FBFBFB) !important;
  box-shadow:0 var(--lvte-timeline-shadow-y, 0px) var(--lvte-timeline-shadow-blur, 0px) rgba(0,0,0,var(--lvte-timeline-shadow-alpha, 0)) !important;
  transform:translate(var(--lvte-timeline-x, 0px), var(--lvte-timeline-y, 0px)) scale(var(--lvte-timeline-scale, 1)) !important;
  transform-origin:top right !important;
}
.lvtt-page .lvtt-timeline .lvtt-h2{
  font-size:var(--lvte-timeline-h2-size, var(--lvte-h2-size, 17px)) !important;
  color:var(--lvte-timeline-h2-color, var(--lvte-h2-color, #171717)) !important;
}
.lvtt-page .lvtt-timeline .lvtt-desc{
  font-size:var(--lvte-timeline-desc-size, var(--lvte-desc-size, 11px)) !important;
  color:var(--lvte-timeline-desc-color, var(--lvte-desc-color, #9B9B9B)) !important;
}
.lvtt-page .lvtt-line{
  margin-top:var(--lvte-line-mt, 18px) !important;
  gap:var(--lvte-line-gap, 12px) !important;
  transform:translate(var(--lvte-line-x, 0px), var(--lvte-line-y, 0px)) !important;
}
.lvtt-page .lvtt-titem{
  padding:var(--lvte-titem-pad-top, 14px) var(--lvte-titem-pad-right, 14px) var(--lvte-titem-pad-bottom, 14px) var(--lvte-titem-pad-left, 34px) !important;
  border-radius:var(--lvte-titem-radius, 20px) !important;
  border-width:var(--lvte-titem-border-width, 1px) !important;
  border-color:var(--lvte-titem-border, #EDEDED) !important;
  background:var(--lvte-titem-bg, #FFFFFF) !important;
  box-shadow:0 var(--lvte-titem-shadow-y, 0px) var(--lvte-titem-shadow-blur, 0px) rgba(0,0,0,var(--lvte-titem-shadow-alpha, 0)) !important;
  transform:translate(var(--lvte-titem-x, 0px), var(--lvte-titem-y, 0px)) !important;
}
.lvtt-page .lvtt-dot{
  left:var(--lvte-dot-left, 13px) !important;
  top:var(--lvte-dot-top, 18px) !important;
  width:var(--lvte-dot-size, 10px) !important;
  height:var(--lvte-dot-size, 10px) !important;
  border-width:var(--lvte-dot-border-width, 2px) !important;
  border-color:var(--lvte-dot-border, #FFFFFF) !important;
  box-shadow:0 0 0 var(--lvte-dot-ring, 1px) var(--lvte-dot-ring-color, #E6E6E6) !important;
  transform:translate(var(--lvte-dot-x, 0px), var(--lvte-dot-y, 0px)) !important;
}
.lvtt-page .lvtt-time{
  font-size:var(--lvte-time-size, 10px) !important;
  letter-spacing:var(--lvte-time-letter, .06em) !important;
  color:var(--lvte-time-color, #A5A5A5) !important;
  transform:translate(var(--lvte-time-x, 0px), var(--lvte-time-y, 0px)) !important;
}
.lvtt-page .lvtt-tname{
  margin-top:var(--lvte-tname-mt, 0px) !important;
  font-size:var(--lvte-tname-size, 11.5px) !important;
  line-height:var(--lvte-tname-line, 17px) !important;
  font-weight:var(--lvte-tname-weight, 650) !important;
  color:var(--lvte-tname-color, #171717) !important;
  -webkit-line-clamp:var(--lvte-tname-lines, 2) !important;
  transform:translate(var(--lvte-tname-x, 0px), var(--lvte-tname-y, 0px)) !important;
}
.lvtt-page .lvtt-tmeta{
  margin-top:var(--lvte-tmeta-mt, 5px) !important;
  font-size:var(--lvte-tmeta-size, 10px) !important;
  line-height:var(--lvte-tmeta-line, 14px) !important;
  color:var(--lvte-tmeta-color, #9A9A9A) !important;
  transform:translate(var(--lvte-tmeta-x, 0px), var(--lvte-tmeta-y, 0px)) !important;
}


/* Keep the locked editor value stable at common desktop widths. */
@media(max-width:1600px){
  .lvtt-page .lvtt-board{grid-template-columns:minmax(0,1fr) var(--lvte-timeline-width, 300px) !important;}
}


/* ==== lovix-tasks-v223-audit-fix.css ==== */
/* ======================================================================
   Lovix v223 · audited task-page fixes
   Stable patch after v222 interaction audit:
   - task count pill compact
   - Details opens a read-only card
   - Timeline renders all tasks from today onward
   - Important toggle inside edit drawer, orange dot after title
   - No broad self-triggering DOM rewrite loop
   ====================================================================== */

.lvtt-page .lvtt-title-row{
  display:flex !important;
  align-items:center !important;
  gap:8px !important;
  flex-wrap:wrap !important;
}
.lvtt-page .lvtt-count{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:auto !important;
  min-width:0 !important;
  flex:0 0 auto !important;
  height:22px !important;
  padding:0 8px !important;
  white-space:nowrap !important;
  line-height:1 !important;
}

.lvtt-page .lvtt-task-title,
.lvtt-page .lvtt-note{
  cursor:pointer !important;
}
.lvtt-page .lvtt-task-title:hover,
.lvtt-page .lvtt-note:hover{
  color:#111111 !important;
}

.lvtt-page .lvtt-timeline{
  max-height:none !important;
  overflow:visible !important;
}
.lvtt-page .lvtt-timeline .lvtt-desc[data-lvtt-v223='true']{
  color:#9B9B9B !important;
}
.lvtt-page .lvtt-line[data-lvtt-v223='true']{
  display:flex !important;
  flex-direction:column !important;
  gap:12px !important;
}
.lvtt-page .lvtt-titem[data-lvtt-task-id]{
  cursor:pointer !important;
}
.lvtt-page .lvtt-titem[data-lvtt-task-id]:hover{
  border-color:#E2E8DA !important;
  background:#FFFFFF !important;
}

.lvtt-v223-read-mask{
  position:fixed;
  inset:0;
  z-index:9000;
  background:rgba(13,13,13,.16);
  backdrop-filter:blur(1px);
  -webkit-backdrop-filter:blur(1px);
}
.lvtt-v223-read-card{
  position:fixed;
  z-index:9001;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  width:min(560px, calc(100vw - 32px));
  max-height:min(82vh, 860px);
  overflow:auto;
  background:#FFFFFF;
  border:1px solid #E8E8E8;
  border-radius:26px;
  box-shadow:0 24px 80px rgba(0,0,0,.12);
}
.lvtt-v223-read-head{
  padding:23px 24px 17px;
  border-bottom:1px solid #EFEFEF;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
}
.lvtt-v223-read-head h3{
  margin:0;
  font-size:15px;
  line-height:21px;
  font-weight:700;
  color:#171717;
}
.lvtt-v223-read-head p{
  margin:4px 0 0;
  font-size:11px;
  line-height:17px;
  color:#9B9B9B;
}
.lvtt-v223-close{
  width:32px;
  height:32px;
  border:0;
  border-radius:999px;
  background:#F7F7F7;
  color:#666;
  font-size:18px;
  line-height:1;
  cursor:pointer;
  flex:0 0 auto;
}
.lvtt-v223-close:hover{background:#F1F1F1;color:#222;}
.lvtt-v223-read-body{
  padding:20px 24px 24px;
  display:grid;
  gap:14px;
}
.lvtt-v223-read-title{
  font-size:18px;
  line-height:28px;
  font-weight:720;
  color:#171717;
  letter-spacing:-.012em;
}
.lvtt-v223-orange-dot{
  display:inline-block;
  width:7px;
  height:7px;
  border-radius:999px;
  margin-left:8px;
  transform:translateY(-1px);
  background:#FF7518;
}
.lvtt-v223-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  gap:12px;
}
.lvtt-v223-box{
  border:1px solid #EDEDED;
  border-radius:18px;
  background:#FBFBFB;
  padding:12px 14px;
  min-width:0;
}
.lvtt-v223-box .k,
.lvtt-v223-note .k{
  font-size:10px;
  line-height:14px;
  letter-spacing:.04em;
  text-transform:uppercase;
  color:#A3A3A3;
}
.lvtt-v223-box .v{
  margin-top:5px;
  font-size:13px;
  line-height:20px;
  color:#171717;
  font-weight:600;
  overflow-wrap:anywhere;
}
.lvtt-v223-note{
  border:1px solid #EDEDED;
  border-radius:18px;
  background:#FFFFFF;
  padding:14px 16px;
}
.lvtt-v223-note .v{
  margin-top:8px;
  font-size:13px;
  line-height:21px;
  color:#555;
  white-space:pre-wrap;
}
.lvtt-v223-read-actions{
  display:flex;
  justify-content:flex-end;
  gap:10px;
  padding-top:2px;
}
.lvtt-v223-read-actions button{
  height:38px;
  padding:0 18px;
  border-radius:999px;
  border:1px solid #E7E7E7;
  background:#FFFFFF;
  color:#444;
  cursor:pointer;
  font-size:12px;
  font-weight:650;
}
.lvtt-v223-read-actions button:hover{background:#F9F9F9;color:#171717;}

.lvtt-v223-important-field{
  border:1px solid #ECECEC;
  border-radius:18px;
  background:#FAFAFA;
  padding:14px 16px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
}
.lvtt-v223-important-k{
  font-size:11px;
  line-height:16px;
  font-weight:650;
  color:#171717;
}
.lvtt-v223-important-d{
  margin-top:3px;
  font-size:10.5px;
  line-height:15px;
  color:#989898;
}
.lvtt-v223-important-toggle{
  height:34px;
  padding:0 12px;
  border-radius:999px;
  border:1px solid #E7E7E7;
  background:#FFFFFF;
  color:#666;
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-size:12px;
  font-weight:650;
  flex:0 0 auto;
}
.lvtt-v223-important-toggle .ring{
  width:15px;
  height:15px;
  border-radius:999px;
  border:2px solid #D6D6D6;
  background:#FFFFFF;
  box-sizing:border-box;
}
.lvtt-v223-important-toggle.active{
  border-color:#F2C39D;
  color:#8B4B1F;
  background:#FFF9F4;
}
.lvtt-v223-important-toggle.active .ring{
  border-color:#FF7518;
  background:radial-gradient(circle at center, #FF7518 0 43%, transparent 45% 100%);
}

@media (max-width:720px){
  .lvtt-v223-grid{grid-template-columns:1fr;}
  .lvtt-v223-read-head,.lvtt-v223-read-body{padding-left:18px;padding-right:18px;}
  .lvtt-v223-important-field{align-items:flex-start;flex-direction:column;}
}


/* ==== lovix-tasks-v224-command-center.css ==== */
/* ======================================================================
   Lovix v224 · Daily Execution Command Center
   Functional expansion only: keeps the current white / light-border / rounded Lovix task visual language.
   ====================================================================== */

.lvdc-hidden-original{display:none !important;}
.lvdc-clickable{cursor:pointer !important;}

.lvtt-page .lvtt-actions{gap:9px !important; flex-wrap:wrap !important;}
.lvtt-page .lvtt-actions .lvtt-btn{white-space:nowrap !important;}

.lvdc-capacity{
  margin:14px 0 14px !important;
  border:1px solid #ECECEC !important;
  background:#FFFFFF !important;
  border-radius:24px !important;
  padding:16px 18px !important;
  box-shadow:0 5px 12px rgba(0,0,0,.012) !important;
}
.lvdc-capacity-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:11px;}
.lvdc-capacity-title{font-size:13px;line-height:18px;font-weight:680;color:#171717;}
.lvdc-capacity-title span{font-size:10.5px;font-weight:500;color:#9B9B9B;margin-left:7px;letter-spacing:.01em;}
.lvdc-capacity-meta{font-size:11px;line-height:16px;color:#8C8C8C;text-align:right;}
.lvdc-capacity-track{height:8px;border:1px solid #EEEEEE;background:#F8F8F8;border-radius:999px;overflow:hidden;}
.lvdc-capacity-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,#D6E957,#BACD34);width:0%;transition:width .18s ease;}
.lvdc-capacity.warn .lvdc-capacity-fill{background:linear-gradient(90deg,#E8D94A,#E8B447);}
.lvdc-capacity.danger .lvdc-capacity-fill{background:linear-gradient(90deg,#F3A568,#E47A42);}
.lvdc-capacity-foot{margin-top:8px;font-size:10.5px;line-height:15px;color:#A1A1A1;}
.lvdc-capacity.danger .lvdc-capacity-foot{color:#9C633B;}

.lvdc-filter{
  display:flex !important;
  align-items:center !important;
  gap:8px !important;
  flex-wrap:wrap !important;
}
.lvdc-tab,.lvdc-select,.lvdc-search{
  height:34px;
  border-radius:999px;
  border:1px solid #E6E6E6;
  background:#FFFFFF;
  color:#6F6F6F;
  font-size:11.5px;
  font-weight:600;
  outline:none;
}
.lvdc-tab{padding:0 12px;cursor:pointer;}
.lvdc-tab.active{background:#171717;border-color:#171717;color:#FFFFFF;}
.lvdc-tab:hover:not(.active),.lvdc-select:hover,.lvdc-search:hover{border-color:#D7E5A9;background:#FBFCF7;color:#3D4812;}
.lvdc-select{padding:0 28px 0 12px;min-width:126px;}
.lvdc-search{padding:0 13px;min-width:310px;flex:1 1 310px;font-weight:500;border-radius:18px;}
.lvdc-tab:focus-visible,.lvdc-select:focus-visible,.lvdc-search:focus-visible,.lvdc-card button:focus-visible,.lvdc-modal button:focus-visible,.lvdc-modal input:focus-visible,.lvdc-modal textarea:focus-visible,.lvdc-modal select:focus-visible{outline:2px solid #D7F24A;outline-offset:2px;}

.lvdc-queue{display:grid;gap:18px;}
.lvdc-group{display:grid;gap:12px;}
.lvdc-group-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;padding:2px 1px 0;}
.lvdc-group-title{font-size:13px;line-height:18px;font-weight:720;color:#171717;}
.lvdc-group-title span{font-size:10.5px;font-weight:500;color:#9B9B9B;margin-left:7px;}
.lvdc-group-desc{margin-top:3px;font-size:10.5px;line-height:15px;color:#A0A0A0;}
.lvdc-group-count{height:22px;display:inline-flex;align-items:center;padding:0 8px;border:1px solid #E8E8E8;border-radius:999px;background:#FAFAFA;color:#8A8A8A;font-size:10px;font-weight:650;white-space:nowrap;}
.lvdc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(286px,1fr));gap:16px;align-items:stretch;}
.lvdc-empty{border:1px dashed #E9E9E9;border-radius:22px;padding:20px;background:#FCFCFC;color:#A1A1A1;font-size:12px;line-height:18px;}

.lvtt-page .lvdc-card.lvtt-row{min-height:302px !important;height:auto !important;display:flex !important;flex-direction:column !important;gap:12px !important;cursor:default !important;}
.lvdc-card-top{display:grid;grid-template-columns:var(--lvte-avatar-size,34px) minmax(0,1fr);gap:12px;align-items:start;}
.lvdc-card-headline{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0;}
.lvdc-type-chip,.lvdc-priority-chip,.lvdc-status-chip,.lvdc-mini-chip{
  display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:999px;border:1px solid #ECECEC;background:#FFFFFF;color:#707070;font-size:10px;line-height:1;font-weight:650;white-space:nowrap;
}
.lvdc-priority-chip.a{border-color:#E9D08D;background:#FFF9ED;color:#8A6B22;}
.lvdc-priority-chip.risk{border-color:#F0C1AA;background:#FFF5EF;color:#9A5939;}
.lvdc-core{min-width:0;}
.lvdc-next{font-size:13.5px;line-height:18.5px;font-weight:670;letter-spacing:-.012em;color:#171717;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.lvdc-next .dot{display:inline-block;width:6px;height:6px;border-radius:999px;background:#FF7518;margin-left:6px;transform:translateY(-1px);}
.lvdc-context{margin-top:5px;font-size:10.5px;line-height:15px;color:#9A9A9A;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.lvdc-contract{border-top:1px solid #F1F1F1;border-bottom:1px solid #F1F1F1;padding:10px 0;display:grid;gap:7px;}
.lvdc-contract-row{display:grid;grid-template-columns:64px minmax(0,1fr);gap:8px;font-size:10.5px;line-height:15px;}
.lvdc-contract-row .k{color:#A7A7A7;font-weight:620;}
.lvdc-contract-row .v{color:#5E5E5E;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.lvdc-statusline{display:flex;gap:6px;flex-wrap:wrap;align-items:center;}
.lvdc-status-chip.done{border-color:#DDE9B6;background:#F7FBF1;color:#617222;}
.lvdc-status-chip.waiting{border-color:#E7DFBD;background:#FFFCF2;color:#80662B;}
.lvdc-status-chip.overdue,.lvdc-status-chip.risk{border-color:#F0C1AA;background:#FFF5EF;color:#9A5939;}
.lvdc-status-chip.open{border-color:#DDE9B6;background:#FBFCF5;color:#596A1D;}
.lvdc-milestones{display:flex;gap:6px;flex-wrap:wrap;align-items:center;min-height:26px;}
.lvdc-ms{display:inline-flex;align-items:center;gap:5px;height:23px;border-radius:999px;border:1px solid #EEEEEE;background:#FFFFFF;padding:0 8px;font-size:10px;color:#7D7D7D;cursor:pointer;}
.lvdc-ms::before{content:"";width:7px;height:7px;border-radius:999px;border:1px solid #D9D9D9;background:#fff;box-sizing:border-box;}
.lvdc-ms.done{border-color:#DDE9B6;background:#FBFCF5;color:#556719;}
.lvdc-ms.done::before{border-color:#B9CB37;background:#C6D93F;}
.lvdc-card-actions{margin-top:auto;display:flex;gap:7px;align-items:center;flex-wrap:wrap;}
.lvdc-card-actions .lvtt-mini{cursor:pointer !important;}
.lvdc-card-actions .lvdc-primary-mini{background:#171717 !important;border-color:#171717 !important;color:#FFFFFF !important;}

.lvdc-rhythm{display:grid;gap:14px;margin-top:18px;}
.lvdc-rhythm-group{display:grid;gap:9px;}
.lvdc-rhythm-title{font-size:11px;line-height:16px;font-weight:700;color:#171717;padding-left:2px;}
.lvdc-rhythm-title span{font-weight:500;color:#9B9B9B;margin-left:6px;}
.lvdc-rhythm-empty{border:1px dashed #E9E9E9;background:#FFFFFF;border-radius:18px;padding:14px;color:#A3A3A3;font-size:11px;line-height:16px;}
.lvtt-page .lvdc-rhythm .lvtt-titem{cursor:pointer !important;}
.lvdc-rhythm .lvtt-tmeta{display:flex;gap:5px;flex-wrap:wrap;}

.lvdc-modal-mask{position:fixed;inset:0;z-index:9500;background:rgba(13,13,13,.18);backdrop-filter:blur(1px);-webkit-backdrop-filter:blur(1px);}
.lvdc-modal{position:fixed;z-index:9501;left:50%;top:50%;transform:translate(-50%,-50%);width:min(920px,calc(100vw - 36px));max-height:min(88vh,900px);display:flex;flex-direction:column;background:#FFFFFF;border:1px solid #E7E7E7;border-radius:28px;box-shadow:0 24px 90px rgba(0,0,0,.13);overflow:hidden;}
.lvdc-modal.small{width:min(560px,calc(100vw - 36px));}
.lvdc-modal.medium{width:min(720px,calc(100vw - 36px));}
.lvdc-modal-head{padding:24px 26px 17px;border-bottom:1px solid #EFEFEF;display:flex;align-items:flex-start;justify-content:space-between;gap:16px;}
.lvdc-modal-title{font-size:22px;line-height:28px;font-weight:720;color:#171717;letter-spacing:-.015em;}
.lvdc-modal-sub{margin-top:6px;font-size:12px;line-height:18px;color:#9B9B9B;max-width:680px;}
.lvdc-close{width:34px;height:34px;border:none;border-radius:999px;background:#F7F7F7;color:#666;font-size:18px;line-height:1;cursor:pointer;flex:0 0 auto;}
.lvdc-close:hover{background:#F1F1F1;color:#171717;}
.lvdc-modal-body{padding:20px 26px 24px;overflow:auto;display:grid;gap:16px;scrollbar-width:none;}
.lvdc-modal-body::-webkit-scrollbar{display:none;}
.lvdc-modal-foot{padding:16px 26px;border-top:1px solid #EFEFEF;display:flex;justify-content:flex-end;gap:10px;background:#FFFFFF;}
.lvdc-btn{height:38px;padding:0 17px;border-radius:999px;border:1px solid #E7E7E7;background:#FFFFFF;color:#444;font-size:12px;font-weight:680;cursor:pointer;}
.lvdc-btn:hover{background:#F9F9F9;color:#171717;}
.lvdc-btn.primary{background:#171717;border-color:#171717;color:#FFFFFF;}
.lvdc-btn.warn{border-color:#F0C1AA;background:#FFF5EF;color:#8A4F32;}
.lvdc-btn.lime{border-color:#DDE9B6;background:#FBFCF5;color:#596A1D;}
.lvdc-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;}
.lvdc-form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr));}
.lvdc-field{display:grid;gap:6px;min-width:0;}
.lvdc-field.full{grid-column:1/-1;}
.lvdc-label{font-size:11px;line-height:16px;color:#8E8E8E;font-weight:620;}
.lvdc-input,.lvdc-textarea,.lvdc-field select{width:100%;border:1px solid #E6E6E6;border-radius:16px;background:#FFFFFF;color:#171717;font-size:13px;line-height:19px;outline:none;box-sizing:border-box;}
.lvdc-input,.lvdc-field select{height:42px;padding:0 13px;}
.lvdc-textarea{min-height:94px;padding:12px 13px;resize:vertical;}
.lvdc-help{font-size:10.5px;line-height:15px;color:#A3A3A3;}
.lvdc-chip-row{display:flex;gap:7px;flex-wrap:wrap;align-items:center;}
.lvdc-chip{height:28px;padding:0 10px;border-radius:999px;border:1px solid #E8E8E8;background:#FFFFFF;color:#696969;font-size:11px;font-weight:650;cursor:pointer;}
.lvdc-chip.active{border-color:#D7E5A9;background:#FBFCF5;color:#566617;}
.lvdc-panel{border:1px solid #ECECEC;border-radius:22px;background:#FBFBFB;padding:15px;display:grid;gap:12px;}
.lvdc-panel-title{font-size:13px;line-height:18px;font-weight:700;color:#171717;}
.lvdc-panel-desc{font-size:10.5px;line-height:15px;color:#9B9B9B;margin-top:2px;}
.lvdc-candidate{display:grid;grid-template-columns:24px minmax(0,1fr) 88px 110px;gap:10px;align-items:center;border:1px solid #EDEDED;background:#FFFFFF;border-radius:18px;padding:11px 12px;}
.lvdc-candidate-title{font-size:12.5px;line-height:17px;font-weight:650;color:#171717;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.lvdc-candidate-meta{font-size:10.5px;line-height:15px;color:#9B9B9B;margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.lvdc-check-list{display:grid;gap:9px;}
.lvdc-check-line{display:flex;align-items:center;gap:9px;border:1px solid #EDEDED;background:#FFFFFF;border-radius:16px;padding:10px 12px;font-size:12px;line-height:17px;color:#555;}
.lvdc-history{display:grid;gap:8px;font-size:11px;line-height:16px;color:#777;}
.lvdc-history-item{border:1px solid #EDEDED;background:#FFFFFF;border-radius:16px;padding:10px 12px;}
.lvdc-error{border:1px solid #F0C1AA;background:#FFF7F2;color:#8A4F32;border-radius:16px;padding:10px 12px;font-size:12px;line-height:18px;}
.lvdc-success{border:1px solid #DDE9B6;background:#FBFCF5;color:#596A1D;border-radius:16px;padding:10px 12px;font-size:12px;line-height:18px;}
.lvdc-toast{position:fixed;right:26px;bottom:26px;z-index:9800;max-width:360px;border:1px solid #E8E8E8;background:#FFFFFF;border-radius:18px;box-shadow:0 18px 60px rgba(0,0,0,.12);padding:13px 15px;font-size:12px;line-height:18px;color:#444;}

@media(max-width:980px){
  .lvdc-form-grid,.lvdc-form-grid.three{grid-template-columns:1fr;}
  .lvdc-candidate{grid-template-columns:24px minmax(0,1fr);}
  .lvdc-search{min-width:220px;}
}


/* ==== lovix-tasks-v226-three-fixes.css ==== */
/* ======================================================================
   Lovix v226 · three requested fixes on v224
   - Do NOT change the new command-center card design.
   - Hide old residual task cards.
   - Stabilize filter dropdown alignment.
   - Replace native-looking selects with Lovix custom dropdown shells.
   ====================================================================== */

/* 1) kill the old v218/v221 residual queue that leaks below Waiting / Upcoming */
.lvtt-page .lvtt-board > div:first-child .lvtt-list,
.lvtt-page .lvtt-board > div:first-child > .lvtt-list,
.lvtt-page .lvtt-board > div:first-child .lvtt-list:not(.lvdc-grid),
.lvtt-page .lvtt-list.lvdc-hidden-original,
.lvtt-page .lvtt-empty.lvdc-hidden-original,
.lvtt-page .lvtt-line.lvdc-hidden-original{
  display:none !important;
  visibility:hidden !important;
  pointer-events:none !important;
  height:0 !important;
  min-height:0 !important;
  margin:0 !important;
  padding:0 !important;
  overflow:hidden !important;
}

/* 2) filter bar: keep current visual feeling, only fix vertical rhythm and arrow alignment */
.lvtt-page .lvdc-filter{
  display:flex !important;
  align-items:center !important;
  gap:10px !important;
  row-gap:10px !important;
  flex-wrap:wrap !important;
}
.lvtt-page .lvdc-filter .lvdc-tab{
  height:40px !important;
  padding:0 16px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  line-height:1 !important;
}
.lvtt-page .lvdc-filter .lvdc-search{
  height:40px !important;
  min-width:360px !important;
  flex:1 1 420px !important;
  display:flex !important;
  align-items:center !important;
  padding-top:0 !important;
  padding-bottom:0 !important;
}

/* hide native select after it is enhanced */
select.lvdc-native-hidden{
  position:absolute !important;
  opacity:0 !important;
  pointer-events:none !important;
  width:1px !important;
  height:1px !important;
  min-width:1px !important;
  min-height:1px !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
}

/* 3) Lovix custom select shell */
.lvdc-custom-select{
  position:relative;
  display:inline-flex;
  vertical-align:top;
  min-width:126px;
  flex:0 0 auto;
  z-index:1;
}
.lvdc-custom-select.is-block{
  display:flex;
  width:100%;
  min-width:0;
}
.lvdc-custom-select.is-open{z-index:260;}
.lvdc-custom-select__button{
  width:100%;
  height:40px;
  min-height:40px;
  border-radius:999px;
  border:1px solid #E6E6E6;
  background:#FFFFFF;
  color:#6F6F6F;
  padding:0 13px 0 15px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  cursor:pointer;
  font-size:11.5px;
  line-height:1;
  font-weight:600;
  text-align:left;
  box-shadow:none;
  transition:border-color .14s ease, background-color .14s ease, color .14s ease, box-shadow .14s ease;
}
.lvdc-custom-select.is-block .lvdc-custom-select__button{
  height:44px;
  min-height:44px;
  border-radius:18px;
  font-size:12.5px;
  font-weight:500;
  color:#171717;
  padding-left:18px;
  padding-right:15px;
}
.lvdc-custom-select__button:hover,
.lvdc-custom-select.is-open .lvdc-custom-select__button{
  border-color:#D7E5A9;
  background:#FBFCF7;
  color:#3D4812;
}
.lvdc-custom-select__button:focus-visible{
  outline:2px solid #D7F24A;
  outline-offset:2px;
}
.lvdc-custom-select__value{
  flex:1 1 auto;
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.lvdc-custom-select__arrow{
  flex:0 0 16px;
  width:16px;
  height:16px;
  position:relative;
  opacity:.86;
}
.lvdc-custom-select__arrow::before{
  content:'';
  position:absolute;
  left:4px;
  top:3px;
  width:7px;
  height:7px;
  border-right:1.7px solid currentColor;
  border-bottom:1.7px solid currentColor;
  transform:rotate(45deg);
  transform-origin:center;
  transition:transform .14s ease, top .14s ease;
}
.lvdc-custom-select.is-open .lvdc-custom-select__arrow::before{
  top:6px;
  transform:rotate(-135deg);
}
.lvdc-custom-select__menu{
  position:absolute;
  left:0;
  right:0;
  top:calc(100% + 8px);
  z-index:270;
  display:none;
  padding:7px;
  border-radius:18px;
  border:1px solid #E7E7E7;
  background:#FFFFFF;
  box-shadow:0 18px 48px rgba(0,0,0,.09);
  max-height:260px;
  overflow:auto;
  scrollbar-width:none;
}
.lvdc-custom-select__menu::-webkit-scrollbar{display:none;}
.lvdc-custom-select.is-open .lvdc-custom-select__menu{display:block;}
.lvdc-custom-select__option{
  width:100%;
  min-height:34px;
  border:0;
  background:transparent;
  color:#606060;
  border-radius:12px;
  padding:8px 10px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  cursor:pointer;
  font-size:12px;
  line-height:16px;
  font-weight:560;
  text-align:left;
}
.lvdc-custom-select__option:hover{
  background:#FBFCF7;
  color:#3D4812;
}
.lvdc-custom-select__option.is-active{
  background:#171717;
  color:#FFFFFF;
}

/* modal/form context: preserve current layout, just replace Excel-looking dropdowns */
.lvdc-modal .lvdc-field{position:relative;}
.lvdc-modal .lvdc-field .lvdc-custom-select,
.lvdc-modal .lvdc-candidate .lvdc-custom-select{
  width:100%;
  min-width:0;
}
.lvdc-modal .lvdc-candidate .lvdc-custom-select__button{
  height:38px;
  min-height:38px;
  border-radius:14px;
  font-size:11.5px;
}
.lvdc-modal .lvdc-candidate .lvdc-custom-select{min-width:180px;}

@media (max-width: 1200px){
  .lvtt-page .lvdc-filter .lvdc-search{min-width:260px !important;}
}


/* ==== lovix-tasks-v228-committed-fixed-first.css ==== */
/* ======================================================================
   Lovix v228 · Committed Today fixed-first accordion experiment
   Scope: only 今日承诺 / Committed Today.
   Logic:
   - The first committed task is always expanded and cannot be collapsed.
   - All following committed tasks are compact by default.
   - Clicking the top/header area of a following task toggles expand/collapse.
   - No text prompt chips such as “点击展开 / 当前展开”.
   ====================================================================== */

.lvtt-page .lvdc-group[data-group="committed"] .lvdc-grid{
  display:flex !important;
  flex-direction:column !important;
  gap:12px !important;
  align-items:stretch !important;
}

.lvtt-page .lvdc-group[data-group="committed"] .lvdc-card{
  width:100% !important;
  position:relative !important;
  transition:
    min-height .18s ease,
    padding .18s ease,
    box-shadow .18s ease,
    border-color .18s ease,
    background-color .18s ease,
    transform .18s ease !important;
}

.lvtt-page .lvdc-group[data-group="committed"] .lvdc-card.is-committed-fixed,
.lvtt-page .lvdc-group[data-group="committed"] .lvdc-card.is-committed-expanded{
  cursor:default !important;
}

.lvtt-page .lvdc-group[data-group="committed"] .lvdc-card.is-committed-collapsible .lvdc-card-top{
  cursor:pointer !important;
  border-radius:18px !important;
}

.lvtt-page .lvdc-group[data-group="committed"] .lvdc-card.is-committed-collapsible .lvdc-card-top:hover .lvdc-next{
  color:#111111 !important;
}

/* Collapsed state = only top identity/action section. */
.lvtt-page .lvdc-group[data-group="committed"] .lvdc-card.is-committed-collapsed{
  min-height:82px !important;
  height:auto !important;
  padding:15px 18px !important;
  overflow:hidden !important;
  background:linear-gradient(180deg,#FFFFFF 0%,#FCFCFC 100%) !important;
  box-shadow:0 3px 10px rgba(0,0,0,.012) !important;
}

.lvtt-page .lvdc-group[data-group="committed"] .lvdc-card.is-committed-collapsed:hover{
  border-color:#E2E8DA !important;
  background:linear-gradient(180deg,#FFFFFF 0%,#FBFCF7 100%) !important;
  transform:translateY(-1px) !important;
}

.lvtt-page .lvdc-group[data-group="committed"] .lvdc-card.is-committed-collapsed .lvdc-contract,
.lvtt-page .lvdc-group[data-group="committed"] .lvdc-card.is-committed-collapsed .lvdc-statusline,
.lvtt-page .lvdc-group[data-group="committed"] .lvdc-card.is-committed-collapsed .lvdc-milestones,
.lvtt-page .lvdc-group[data-group="committed"] .lvdc-card.is-committed-collapsed .lvdc-card-actions{
  display:none !important;
}

.lvtt-page .lvdc-group[data-group="committed"] .lvdc-card.is-committed-collapsed .lvdc-card-top{
  align-items:center !important;
}

.lvtt-page .lvdc-group[data-group="committed"] .lvdc-card.is-committed-collapsed .lvdc-card-headline{
  margin-bottom:4px !important;
}

.lvtt-page .lvdc-group[data-group="committed"] .lvdc-card.is-committed-collapsed .lvdc-next{
  font-size:13px !important;
  line-height:18px !important;
  -webkit-line-clamp:1 !important;
  padding-right:0 !important;
}

.lvtt-page .lvdc-group[data-group="committed"] .lvdc-card.is-committed-collapsed .lvdc-context{
  margin-top:4px !important;
  -webkit-line-clamp:1 !important;
  padding-right:0 !important;
}

/* Remove v227 textual hints completely. */
.lvtt-page .lvdc-group[data-group="committed"] .lvdc-card.is-committed-collapsed::after,
.lvtt-page .lvdc-group[data-group="committed"] .lvdc-card.is-committed-expanded::before,
.lvtt-page .lvdc-group[data-group="committed"] .lvdc-card.is-committed-fixed::before,
.lvtt-page .lvdc-group[data-group="committed"] .lvdc-card.lvdc-committed-accordion-card::after,
.lvtt-page .lvdc-group[data-group="committed"] .lvdc-card.lvdc-committed-accordion-card::before{
  display:none !important;
  content:none !important;
}

.lvtt-page .lvdc-group[data-group="committed"] .lvdc-card.is-committed-expanded .lvdc-card-actions,
.lvtt-page .lvdc-group[data-group="committed"] .lvdc-card.is-committed-fixed .lvdc-card-actions{
  padding-right:0 !important;
}

@media (max-width: 980px){
  .lvtt-page .lvdc-group[data-group="committed"] .lvdc-card.is-committed-collapsed .lvdc-next,
  .lvtt-page .lvdc-group[data-group="committed"] .lvdc-card.is-committed-collapsed .lvdc-context{
    padding-right:0 !important;
  }
}


/* ==== lovix-tasks-v229-upcoming-overdue-polish.css ==== */
/* ======================================================================
   Lovix v229 · Upcoming hierarchy + Overdue warning polish
   Scope only:
   1) 即将跟进 / Upcoming cards: separate text hierarchy and move chips below title/context.
   2) 已逾期 / Overdue cards: replace pale green bottom wash with restrained orange warning gradient.
   ====================================================================== */

/* 01 · Upcoming cards: keep card design, only reorganize inner hierarchy */
.lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-card{
  --lvdc-upcoming-chip-h: 19px;
  --lvdc-upcoming-chip-pad-x: 7px;
  --lvdc-upcoming-chip-font: 9.5px;
}

.lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-card-top{
  align-items:start !important;
  gap:12px !important;
}

.lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-core{
  display:flex !important;
  flex-direction:column !important;
  min-width:0 !important;
}

/* Title first: stronger, cleaner, not squeezed by chips */
.lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-next{
  order:1 !important;
  font-size:14px !important;
  line-height:19.5px !important;
  font-weight:700 !important;
  letter-spacing:-0.014em !important;
  -webkit-line-clamp:2 !important;
  margin-top:1px !important;
}

.lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-context{
  order:2 !important;
  margin-top:5px !important;
  font-size:10.5px !important;
  line-height:15px !important;
  color:#999999 !important;
  -webkit-line-clamp:1 !important;
}

/* Chips moved below header copy, smaller and more delicate */
.lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-card-headline{
  order:3 !important;
  justify-content:flex-start !important;
  align-items:center !important;
  gap:6px !important;
  margin-top:9px !important;
  padding-top:9px !important;
  border-top:1px solid #F1F1F1 !important;
}

.lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-type-chip,
.lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-priority-chip{
  height:var(--lvdc-upcoming-chip-h) !important;
  padding:0 var(--lvdc-upcoming-chip-pad-x) !important;
  border-radius:999px !important;
  font-size:var(--lvdc-upcoming-chip-font) !important;
  line-height:1 !important;
  font-weight:650 !important;
  letter-spacing:0 !important;
  box-shadow:none !important;
}

.lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-type-chip{
  background:#FFFFFF !important;
  border-color:#EDEDED !important;
  color:#777777 !important;
}

.lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-priority-chip{
  background:#FFFDF7 !important;
  border-color:#EBDCAA !important;
  color:#8A6B22 !important;
}

.lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-priority-chip:not(.a){
  background:#FFFFFF !important;
  border-color:#EAEAEA !important;
  color:#777777 !important;
}

/* Give the contract block slightly more breathing room after moving chips down */
.lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-contract{
  margin-top:1px !important;
}

/* 02 · Overdue cards: subtle orange warning, not pale-green completion wash */
.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card{
  position:relative !important;
  overflow:hidden !important;
  border-color:#EED9C8 !important;
  background:
    linear-gradient(180deg,#FFFFFF 0%,#FFFFFF 54%,#FFF9F3 82%,#FFF2E8 100%) !important;
  box-shadow:0 8px 24px rgba(196,103,55,.045) !important;
}

.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card:hover{
  border-color:#E9C8B2 !important;
  background:
    linear-gradient(180deg,#FFFFFF 0%,#FFFFFF 48%,#FFF7F0 78%,#FFEFE2 100%) !important;
}

.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card::after{
  content:"" !important;
  position:absolute !important;
  left:22px !important;
  right:22px !important;
  bottom:0 !important;
  height:3px !important;
  border-radius:999px 999px 0 0 !important;
  background:linear-gradient(90deg,rgba(255,117,24,.18),rgba(255,117,24,.52),rgba(255,117,24,.14)) !important;
  pointer-events:none !important;
}

.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-status-chip.overdue,
.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-status-chip.risk{
  border-color:#E8BFA8 !important;
  background:#FFF3EA !important;
  color:#9A5939 !important;
}

.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-mini-chip{
  border-color:#EFE0D5 !important;
  background:#FFFFFF !important;
  color:#8A6A58 !important;
}

.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-priority-chip.a{
  border-color:#E9C189 !important;
  background:#FFF7EA !important;
  color:#8A5B20 !important;
}


/* ==== lovix-tasks-v230-top-unified.css ==== */
/* ======================================================================
   Lovix v230 · Subpage top unification only
   Scope: Today Tasks page TOP area only
   - Header title/actions
   - Pulse KPI cards
   - Capacity card
   - Filter card
   Does NOT touch execution queue cards / rhythm cards / overlays.
   ====================================================================== */

:root{
  --lv-subtop-title-size: 25px;
  --lv-subtop-title-line: 31px;
  --lv-subtop-en-size: 11.5px;
  --lv-subtop-sub-size: 11.5px;
  --lv-subtop-sub-line: 18px;
  --lv-subtop-btn-h: 36px;
  --lv-subtop-btn-radius: 999px;
  --lv-subtop-btn-font: 11.5px;
  --lv-subtop-card-radius: 24px;
  --lv-subtop-card-border: #E7E7E7;
  --lv-subtop-soft: #929292;
  --lv-subtop-faint: #AAAAAA;
}

/* 01 Page header: reduce hierarchy jump, match other child pages */
.lvtt-page .lvtt-head{
  align-items:flex-start !important;
  margin-bottom:18px !important;
  gap:22px !important;
}
.lvtt-page .lvtt-titleline{
  display:flex !important;
  align-items:baseline !important;
  gap:10px !important;
}
.lvtt-page .lvtt-title{
  font-size:var(--lv-subtop-title-size) !important;
  line-height:var(--lv-subtop-title-line) !important;
  font-weight:690 !important;
  letter-spacing:-0.022em !important;
  margin:0 !important;
  color:#171717 !important;
}
.lvtt-page .lvtt-en{
  font-size:var(--lv-subtop-en-size) !important;
  line-height:16px !important;
  font-weight:560 !important;
  color:#9A9A9A !important;
  margin-bottom:0 !important;
  letter-spacing:.01em !important;
}
.lvtt-page .lvtt-sub{
  margin-top:7px !important;
  font-size:var(--lv-subtop-sub-size) !important;
  line-height:var(--lv-subtop-sub-line) !important;
  font-weight:450 !important;
  color:var(--lv-subtop-soft) !important;
  max-width:820px !important;
}
.lvtt-page .lvtt-sub span{
  color:#A6A6A6 !important;
  margin-left:6px !important;
}
.lvtt-page .lvtt-actions{
  gap:8px !important;
  padding-top:3px !important;
  align-items:center !important;
}
.lvtt-page .lvtt-actions .lvtt-btn{
  height:var(--lv-subtop-btn-h) !important;
  border-radius:var(--lv-subtop-btn-radius) !important;
  padding:0 15px !important;
  font-size:var(--lv-subtop-btn-font) !important;
  font-weight:630 !important;
  border-color:#E8E8E8 !important;
  box-shadow:none !important;
  white-space:nowrap !important;
}
.lvtt-page .lvtt-actions .lvtt-primary{
  background:#111111 !important;
  border-color:#111111 !important;
  color:#FFFFFF !important;
}
.lvtt-page .lvtt-actions .lvtt-ghost{
  background:#FFFFFF !important;
  color:#4E4E4E !important;
}
.lvtt-page .lvtt-actions .lvtt-btn:hover{
  transform:none !important;
  background:#F9FAF7 !important;
  border-color:#DDE9B6 !important;
  color:#333333 !important;
}
.lvtt-page .lvtt-actions .lvtt-primary:hover{
  background:#111111 !important;
  border-color:#111111 !important;
  color:#FFFFFF !important;
  opacity:.92 !important;
}

/* 02 Pulse KPI cards: same shell language, calmer font jump */
.lvtt-page .lvtt-metrics{
  gap:14px !important;
  margin-bottom:14px !important;
}
.lvtt-page .lvtt-metric{
  min-height:116px !important;
  padding:17px 19px 16px !important;
  border-radius:var(--lv-subtop-card-radius) !important;
  border:1px solid var(--lv-subtop-card-border) !important;
  background:#FFFFFF !important;
  box-shadow:0 8px 20px rgba(0,0,0,.014) !important;
  display:flex !important;
  flex-direction:column !important;
  justify-content:flex-start !important;
}
.lvtt-page .lvtt-metric h3{
  margin:0 !important;
  font-size:12.5px !important;
  line-height:17px !important;
  font-weight:680 !important;
  color:#171717 !important;
  letter-spacing:-.004em !important;
}
.lvtt-page .lvtt-metric .en{
  margin-left:6px !important;
  font-size:10.5px !important;
  line-height:14px !important;
  font-weight:520 !important;
  color:#A3A3A3 !important;
  letter-spacing:.01em !important;
}
.lvtt-page .lvtt-metric .num{
  margin-top:13px !important;
  font-size:30px !important;
  line-height:34px !important;
  font-weight:700 !important;
  letter-spacing:-.025em !important;
  color:#171717 !important;
}
.lvtt-page .lvtt-metric p{
  margin:8px 0 0 !important;
  font-size:11px !important;
  line-height:16px !important;
  font-weight:450 !important;
  color:#8E8E8E !important;
}
.lvtt-page .lvtt-metric[data-lvdc-metric="overdue"] .num,
.lvtt-page .lvtt-metric[data-lvdc-metric="risk"] .num{
  color:#2A2A2A !important;
}

/* 03 Capacity: same top-card shell, less noisy typography */
.lvtt-page .lvdc-capacity{
  margin:12px 0 14px !important;
  padding:15px 18px 14px !important;
  border-radius:var(--lv-subtop-card-radius) !important;
  border:1px solid var(--lv-subtop-card-border) !important;
  background:#FFFFFF !important;
  box-shadow:0 8px 20px rgba(0,0,0,.014) !important;
}
.lvtt-page .lvdc-capacity-head{
  margin-bottom:10px !important;
  align-items:baseline !important;
}
.lvtt-page .lvdc-capacity-title{
  font-size:12.5px !important;
  line-height:17px !important;
  font-weight:680 !important;
  color:#171717 !important;
}
.lvtt-page .lvdc-capacity-title span{
  margin-left:7px !important;
  font-size:10.5px !important;
  line-height:14px !important;
  font-weight:520 !important;
  color:#A3A3A3 !important;
}
.lvtt-page .lvdc-capacity-meta{
  font-size:10.5px !important;
  line-height:15px !important;
  color:#8E8E8E !important;
  font-weight:520 !important;
}
.lvtt-page .lvdc-capacity-track{
  height:7px !important;
  border-color:#F0F0F0 !important;
  background:#F8F8F8 !important;
}
.lvtt-page .lvdc-capacity-fill{
  background:linear-gradient(90deg,#DCEF5F 0%,#BCCE33 100%) !important;
}
.lvtt-page .lvdc-capacity-foot{
  margin-top:8px !important;
  font-size:10.5px !important;
  line-height:15px !important;
  color:#9E9E9E !important;
}

/* 04 Filters: unified top control board, not an oversized standalone block */
.lvtt-page .lvtt-filter{
  margin-bottom:18px !important;
}
.lvtt-page .lvdc-filter{
  padding:13px 16px !important;
  border-radius:var(--lv-subtop-card-radius) !important;
  border:1px solid var(--lv-subtop-card-border) !important;
  background:#FFFFFF !important;
  box-shadow:0 8px 20px rgba(0,0,0,.012) !important;
  gap:8px !important;
  row-gap:9px !important;
  align-items:center !important;
}
.lvtt-page .lvdc-tab,
.lvtt-page .lvdc-select,
.lvtt-page .lvdc-search,
.lvtt-page .lvdc-cselect-btn{
  height:34px !important;
  border-radius:999px !important;
  border-color:#E8E8E8 !important;
  background:#FFFFFF !important;
  font-size:11.2px !important;
  line-height:15px !important;
  font-weight:620 !important;
  color:#686868 !important;
  box-shadow:none !important;
}
.lvtt-page .lvdc-tab{
  padding:0 13px !important;
}
.lvtt-page .lvdc-tab.active{
  background:#111111 !important;
  border-color:#111111 !important;
  color:#FFFFFF !important;
}
.lvtt-page .lvdc-cselect{
  min-width:128px !important;
}
.lvtt-page .lvdc-cselect.inline .lvdc-cselect-btn{
  height:34px !important;
  padding:0 12px !important;
}
.lvtt-page .lvdc-cselect-value{
  font-size:11.2px !important;
  font-weight:620 !important;
}
.lvtt-page .lvdc-cselect-caret{
  width:14px !important;
  height:14px !important;
}
.lvtt-page .lvdc-cselect-caret::before{
  width:6px !important;
  height:6px !important;
  border-right-width:1.4px !important;
  border-bottom-width:1.4px !important;
}
.lvtt-page .lvdc-search{
  min-width:360px !important;
  flex:1 1 360px !important;
  padding:0 13px !important;
  font-weight:500 !important;
  color:#6D6D6D !important;
}
.lvtt-page .lvdc-search::placeholder{
  color:#A5A5A5 !important;
  font-weight:480 !important;
}
.lvtt-page .lvdc-tab:hover:not(.active),
.lvtt-page .lvdc-cselect-btn:hover,
.lvtt-page .lvdc-search:hover{
  border-color:#DDE9B6 !important;
  background:#FBFCF7 !important;
  color:#3D4812 !important;
}
.lvtt-page .lvdc-cselect-menu{
  border-color:#E7E7E7 !important;
  border-radius:16px !important;
  box-shadow:0 16px 40px rgba(0,0,0,.08) !important;
}
.lvtt-page .lvdc-cselect-opt{
  min-height:32px !important;
  font-size:11.5px !important;
  border-radius:11px !important;
}

@media(max-width:1280px){
  .lvtt-page .lvtt-head{flex-direction:column !important;align-items:flex-start !important;}
  .lvtt-page .lvtt-actions{padding-top:0 !important;}
  .lvtt-page .lvtt-metrics{grid-template-columns:repeat(2,minmax(0,1fr)) !important;}
}
@media(max-width:760px){
  .lvtt-page .lvtt-title{font-size:23px !important;line-height:29px !important;}
  .lvtt-page .lvtt-metrics{grid-template-columns:1fr !important;}
  .lvtt-page .lvdc-search{min-width:100% !important;}
}


/* ==== lovix-tasks-v231-overdue-accordion-filter.css ==== */
/* ======================================================================
   Lovix v231 · Overdue accordion + filter order patch
   Scope:
   1) 已逾期 / Overdue uses same fixed-first accordion layout as 今日承诺.
      Color/warning feeling is preserved; only layout/interaction changes.
   2) Remove the orange bottom bar on overdue cards.
   3) Put “全部 All” as the first tab in the filter row.
   ====================================================================== */

/* Filter: All first, keep current top unified visual */
.lvtt-page .lvdc-filter .lvdc-tab[data-view="all"]{
  order:0 !important;
}
.lvtt-page .lvdc-filter .lvdc-tab[data-view="today"]{order:1 !important;}
.lvtt-page .lvdc-filter .lvdc-tab[data-view="overdue"]{order:2 !important;}
.lvtt-page .lvdc-filter .lvdc-tab[data-view="upcoming"]{order:3 !important;}
.lvtt-page .lvdc-filter .lvdc-tab[data-view="waiting"]{order:4 !important;}
.lvtt-page .lvdc-filter .lvdc-tab[data-view="done"]{order:5 !important;}
.lvtt-page .lvdc-filter .lvdc-cselect,
.lvtt-page .lvdc-filter .lvdc-select,
.lvtt-page .lvdc-filter select{order:10 !important;}
.lvtt-page .lvdc-filter .lvdc-search{order:20 !important;}

/* Overdue: same vertical accordion structure as Committed Today */
.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-grid{
  display:flex !important;
  flex-direction:column !important;
  gap:12px !important;
  align-items:stretch !important;
  grid-template-columns:none !important;
}

.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card{
  width:100% !important;
  position:relative !important;
  transition:
    min-height .18s ease,
    padding .18s ease,
    box-shadow .18s ease,
    border-color .18s ease,
    background-color .18s ease,
    transform .18s ease !important;
}

/* Remove v229 bottom orange bar completely */
.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card::after{
  display:none !important;
  content:none !important;
  background:none !important;
}

.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card.is-overdue-fixed,
.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card.is-overdue-expanded{
  cursor:default !important;
}

.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card.is-overdue-collapsible .lvdc-card-top{
  cursor:pointer !important;
  border-radius:18px !important;
}

.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card.is-overdue-collapsible .lvdc-card-top:hover .lvdc-next{
  color:#111111 !important;
}

/* Collapsed overdue: same top-only height as committed collapsed; keep overdue colors from v229 */
.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card.is-overdue-collapsed{
  min-height:82px !important;
  height:auto !important;
  padding:15px 18px !important;
  overflow:hidden !important;
  box-shadow:0 4px 14px rgba(196,103,55,.035) !important;
}

.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card.is-overdue-collapsed:hover{
  transform:translateY(-1px) !important;
}

.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card.is-overdue-collapsed .lvdc-contract,
.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card.is-overdue-collapsed .lvdc-statusline,
.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card.is-overdue-collapsed .lvdc-milestones,
.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card.is-overdue-collapsed .lvdc-card-actions{
  display:none !important;
}

.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card.is-overdue-collapsed .lvdc-card-top{
  align-items:center !important;
}

.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card.is-overdue-collapsed .lvdc-card-headline{
  margin-bottom:4px !important;
}

.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card.is-overdue-collapsed .lvdc-next{
  font-size:13px !important;
  line-height:18px !important;
  -webkit-line-clamp:1 !important;
  padding-right:0 !important;
}

.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card.is-overdue-collapsed .lvdc-context{
  margin-top:4px !important;
  -webkit-line-clamp:1 !important;
  padding-right:0 !important;
}

/* No textual hint badges */
.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card.is-overdue-collapsed::before,
.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card.is-overdue-collapsed::after,
.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card.is-overdue-expanded::before,
.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card.is-overdue-fixed::before,
.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card.lvdc-overdue-accordion-card::before,
.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card.lvdc-overdue-accordion-card::after{
  display:none !important;
  content:none !important;
}

.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card.is-overdue-expanded .lvdc-card-actions,
.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card.is-overdue-fixed .lvdc-card-actions{
  padding-right:0 !important;
}


/* ==== lovix-tasks-v232-queue-polish.css ==== */
/* ======================================================================
   Lovix v232 · Queue detail polish
   Scope only:
   1) 已逾期卡片边线恢复为与今日承诺一致的浅灰体系；去掉橙色边框感。
   2) 即将跟进卡片整体文字压小约 2px，增加卡片内部上下呼吸，同时消除底部大片留白。
   ====================================================================== */

/* 01 · Overdue: keep warning content colors/chips, but border line follows normal Lovix card grey */
.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card{
  border-color:#ECECEC !important;
  box-shadow:0 6px 18px rgba(0,0,0,.018) !important;
}
.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card:hover{
  border-color:#E2E8DA !important;
  box-shadow:0 8px 22px rgba(0,0,0,.024) !important;
}
.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card.is-overdue-collapsed{
  border-color:#ECECEC !important;
  box-shadow:0 5px 16px rgba(0,0,0,.016) !important;
}
.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card.is-overdue-collapsed:hover{
  border-color:#E2E8DA !important;
}

/* 02 · Upcoming: smaller type scale + tighter content flow, no large blank before buttons */
.lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-card{
  padding:24px 26px 25px 26px !important;
  min-height:auto !important;
  height:auto !important;
  gap:12px !important;
  align-self:start !important;
}
.lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-card-top{
  gap:13px !important;
  margin-bottom:0 !important;
}
.lvtt-page .lvdc-group[data-group="upcoming"] .lvtt-avatar{
  width:32px !important;
  height:32px !important;
  min-width:32px !important;
  font-size:10px !important;
}
.lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-next{
  font-size:12px !important;
  line-height:17px !important;
  font-weight:700 !important;
  letter-spacing:-0.012em !important;
  -webkit-line-clamp:2 !important;
}
.lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-next .dot{
  width:5px !important;
  height:5px !important;
  margin-left:5px !important;
}
.lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-context{
  margin-top:4px !important;
  font-size:8.8px !important;
  line-height:13px !important;
  -webkit-line-clamp:1 !important;
}
.lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-card-headline{
  margin-top:8px !important;
  padding-top:8px !important;
  gap:5px !important;
}
.lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-type-chip,
.lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-priority-chip{
  height:17px !important;
  padding:0 6px !important;
  font-size:7.8px !important;
  font-weight:640 !important;
}
.lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-contract{
  margin-top:0 !important;
  padding:11px 0 10px !important;
  gap:8px !important;
}
.lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-contract-row{
  grid-template-columns:58px minmax(0,1fr) !important;
  gap:8px !important;
  font-size:8.8px !important;
  line-height:13.5px !important;
}
.lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-contract-row .k{
  font-size:8.8px !important;
  line-height:13.5px !important;
}
.lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-statusline{
  gap:5px !important;
  margin-top:0 !important;
}
.lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-status-chip,
.lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-mini-chip{
  height:19px !important;
  padding:0 7px !important;
  font-size:8.2px !important;
  font-weight:650 !important;
}
.lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-milestones{
  gap:5px !important;
  min-height:0 !important;
  margin-top:0 !important;
}
.lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-ms{
  height:19px !important;
  padding:0 7px !important;
  font-size:8px !important;
  font-weight:600 !important;
}
.lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-card-actions{
  margin-top:6px !important;
  padding-top:4px !important;
  gap:7px !important;
  align-items:center !important;
}
.lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-card-actions .lvtt-mini{
  height:26px !important;
  padding:0 12px !important;
  font-size:9.5px !important;
  font-weight:650 !important;
}

/* Keep upcoming grid from becoming vertically over-stretched by neighboring cards */
.lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-grid{
  align-items:start !important;
}


/* ==== lovix-tasks-v233-multi-fix.css ==== */
/* ======================================================================
   Lovix v233 · multi-screenshot task page polish
   Scope:
   - collapsed cards are neutral white, not colored gradient
   - overdue expanded cards keep only a very soft orange warning wash, grey border
   - upcoming cards tighter and cleaner
   - timeline panel +15px, left queue naturally -15px
   - modal custom-select/options polish
   ====================================================================== */

:root{
  --lvte-timeline-width:315px;
}
.lvtt-page .lvtt-board{
  grid-template-columns:minmax(0,1fr) 315px !important;
}
.lvtt-page .lvtt-timeline{
  width:315px !important;
}

/* collapsed compact cards: no colored gradient, just neutral Lovix white */
.lvtt-page .lvdc-group[data-group="committed"] .lvdc-card.is-committed-collapsed,
.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card.is-overdue-collapsed{
  background:#FFFFFF !important;
  border-color:#ECECEC !important;
  box-shadow:0 4px 14px rgba(0,0,0,.014) !important;
}
.lvtt-page .lvdc-group[data-group="committed"] .lvdc-card.is-committed-collapsed:hover,
.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card.is-overdue-collapsed:hover{
  background:#FFFFFF !important;
  border-color:#E2E8DA !important;
  box-shadow:0 6px 18px rgba(0,0,0,.022) !important;
}

/* overdue: grey border like committed; only expanded state has a restrained orange wash */
.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card{
  border-color:#ECECEC !important;
  box-shadow:0 6px 18px rgba(0,0,0,.018) !important;
}
.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card.is-overdue-fixed,
.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card.is-overdue-expanded{
  background:linear-gradient(180deg,#FFFFFF 0%,#FFFFFF 61%,#FFF9F4 100%) !important;
  border-color:#ECECEC !important;
  box-shadow:0 8px 24px rgba(196,103,55,.035) !important;
}
.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card.is-overdue-fixed:hover,
.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card.is-overdue-expanded:hover{
  background:linear-gradient(180deg,#FFFFFF 0%,#FFFFFF 58%,#FFF7F0 100%) !important;
  border-color:#E2E8DA !important;
}
.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card::after{
  display:none !important;
  content:none !important;
}

/* action language: details becomes edit; make the edit button visually ordinary */
.lvtt-page .lvdc-card-actions [data-action="detail"]{
  min-width:44px !important;
}

/* upcoming: all inner typography smaller and less blank */
.lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-card{
  padding:22px 24px 22px 24px !important;
  gap:9px !important;
  min-height:auto !important;
  height:auto !important;
  align-self:start !important;
}
.lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-card-top{gap:12px !important;}
.lvtt-page .lvdc-group[data-group="upcoming"] .lvtt-avatar{
  width:30px !important;height:30px !important;min-width:30px !important;font-size:9px !important;
}
.lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-next{
  font-size:11.5px !important;line-height:16px !important;font-weight:700 !important;
}
.lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-context{
  font-size:8.5px !important;line-height:12.5px !important;margin-top:3px !important;
}
.lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-card-headline{
  margin-top:7px !important;padding-top:7px !important;gap:5px !important;
}
.lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-type-chip,
.lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-priority-chip{
  height:16px !important;padding:0 5px !important;font-size:7.4px !important;font-weight:640 !important;
}
.lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-contract{
  padding:9px 0 8px !important;gap:6px !important;margin-top:0 !important;
}
.lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-contract-row{
  grid-template-columns:54px minmax(0,1fr) !important;
  font-size:8.4px !important;line-height:12.5px !important;gap:7px !important;
}
.lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-contract-row .k{font-size:8.4px !important;line-height:12.5px !important;}
.lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-statusline{gap:4px !important;margin-top:0 !important;}
.lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-status-chip,
.lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-mini-chip{
  height:18px !important;padding:0 6px !important;font-size:7.8px !important;
}
.lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-milestones{
  gap:4px !important;min-height:0 !important;margin-top:0 !important;
}
.lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-ms{
  height:18px !important;padding:0 6px !important;font-size:7.6px !important;
}
.lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-card-actions{
  margin-top:2px !important;padding-top:2px !important;gap:6px !important;
}
.lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-card-actions .lvtt-mini{
  height:24px !important;padding:0 10px !important;font-size:8.8px !important;
}

/* Modal/select option density and custom option feel */
.lvdc-modal .lvdc-custom-select__menu{
  padding:7px !important;
}
.lvdc-modal .lvdc-custom-select__option{
  min-height:30px !important;
  padding:6px 10px !important;
  font-size:12px !important;
}
.lvdc-modal .lvdc-custom-select__option[data-value^="__custom"]{
  color:#66752A !important;
  background:#FBFCF5 !important;
  border:1px dashed #DDE9B6 !important;
  margin-top:4px !important;
}
.lvdc-modal .lvdc-chip-add{
  border-style:dashed !important;
  color:#66752A !important;
  background:#FBFCF5 !important;
}

@media (max-width: 1280px){
  :root{--lvte-timeline-width:300px;}
  .lvtt-page .lvtt-board{grid-template-columns:minmax(0,1fr) 300px !important;}
  .lvtt-page .lvtt-timeline{width:300px !important;}
}


/* ======================================================================
   v234 · final polish from multi-screenshot review
   ====================================================================== */

/* hide the large capacity block and move it into timeline as a compact card */
.lvtt-page .lvdc-capacity{
  display:none !important;
}
.lvtt-page .lvdc-capacity-mini{
  margin:14px 0 18px !important;
  border:1px solid #ECECEC !important;
  background:#FFFFFF !important;
  border-radius:20px !important;
  padding:14px 14px 13px !important;
  box-shadow:0 5px 14px rgba(0,0,0,.014) !important;
}
.lvtt-page .lvdc-capacity-mini__head{
  display:grid !important;
  gap:6px !important;
  margin-bottom:9px !important;
}
.lvtt-page .lvdc-capacity-mini__title{
  font-size:12px !important;
  line-height:16px !important;
  font-weight:700 !important;
  color:#171717 !important;
}
.lvtt-page .lvdc-capacity-mini__title span{
  margin-left:6px !important;
  font-size:10px !important;
  font-weight:500 !important;
  color:#9B9B9B !important;
}
.lvtt-page .lvdc-capacity-mini__meta{
  font-size:10.5px !important;
  line-height:15px !important;
  color:#8E8E8E !important;
}
.lvtt-page .lvdc-capacity-mini__track{
  height:7px !important;
  border-radius:999px !important;
  background:#F5F5F5 !important;
  border:1px solid #EEEEEE !important;
  overflow:hidden !important;
}
.lvtt-page .lvdc-capacity-mini__fill{
  height:100% !important;
  border-radius:999px !important;
  background:linear-gradient(90deg,#D6E957,#BACD34) !important;
}
.lvtt-page .lvdc-capacity-mini__foot{
  margin-top:8px !important;
  font-size:10px !important;
  line-height:14px !important;
  color:#A1A1A1 !important;
}

/* overdue gradient only: lighter, later fade, wider wash area */
.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card.is-overdue-fixed,
.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card.is-overdue-expanded{
  background:linear-gradient(180deg,#FFFFFF 0%, #FFFFFF 66%, #FFFDFC 78%, #FCF6F1 100%) !important;
  box-shadow:0 8px 22px rgba(196,103,55,.028) !important;
}
.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card.is-overdue-fixed:hover,
.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card.is-overdue-expanded:hover{
  background:linear-gradient(180deg,#FFFFFF 0%, #FFFFFF 64%, #FFFDFC 76%, #FBF4EE 100%) !important;
}

/* card middle zone can be clicked to edit */
.lvtt-page .lvdc-contract{
  cursor:pointer !important;
}
.lvtt-page .lvdc-contract:hover{
  background:rgba(248,248,248,.65) !important;
  border-radius:12px !important;
}

/* tighten and unify the three lower rows in cards */
.lvtt-page .lvdc-statusline{
  gap:8px !important;
  margin-top:2px !important;
}
.lvtt-page .lvdc-milestones{
  gap:8px !important;
  margin-top:4px !important;
  min-height:0 !important;
}
.lvtt-page .lvdc-card-actions{
  margin-top:6px !important;
  padding-top:0 !important;
  gap:8px !important;
}
.lvtt-page .lvdc-status-chip,
.lvtt-page .lvdc-mini-chip,
.lvtt-page .lvdc-ms{
  height:24px !important;
  font-size:10.3px !important;
  padding:0 9px !important;
}
.lvtt-page .lvdc-card-actions .lvtt-mini{
  height:33px !important;
  padding:0 12px !important;
  font-size:11px !important;
}

/* rhythm panel breathing dot */
.lvtt-page .lvdc-rhythm .lvtt-dot{
  position:absolute !important;
  left:-1px !important;
  top:5px !important;
  width:12px !important;
  height:12px !important;
  border-radius:999px !important;
  background:#FFFFFF !important;
  box-shadow:0 0 0 1px #E3E3E3 !important;
}
.lvtt-page .lvdc-rhythm .lvtt-dot::after{
  content:"";
  position:absolute;
  inset:2px;
  border-radius:999px;
  background:#D6E957;
  box-shadow:0 0 0 0 rgba(198,217,63,.36);
  animation:lvdcPulse 1.9s ease-out infinite;
}
@keyframes lvdcPulse{
  0%{ transform:scale(0.88); box-shadow:0 0 0 0 rgba(198,217,63,.38); opacity:.95; }
  70%{ transform:scale(1); box-shadow:0 0 0 7px rgba(198,217,63,0); opacity:1; }
  100%{ transform:scale(1); box-shadow:0 0 0 0 rgba(198,217,63,0); opacity:.9; }
}

/* modal: excel-like date input -> cleaner picker surface */
.lvdc-modal input[type="date"],
.lvdc-modal input[type="time"]{
  appearance:none !important;
  -webkit-appearance:none !important;
  background:#FFFFFF !important;
}
.lvdc-modal input[type="date"]::-webkit-calendar-picker-indicator,
.lvdc-modal input[type="time"]::-webkit-calendar-picker-indicator{
  opacity:.72 !important;
  cursor:pointer !important;
}

/* inline custom editor replaces ugly browser prompt */
.lvdc-modal .lvdc-inline-custom-editor{
  margin-top:6px !important;
  padding:10px !important;
  border:1px dashed #DDE9B6 !important;
  background:#FBFCF5 !important;
  border-radius:14px !important;
}
.lvdc-modal .lvdc-inline-custom-editor__title{
  font-size:11px !important;
  line-height:15px !important;
  font-weight:700 !important;
  color:#5B6B1F !important;
  margin-bottom:8px !important;
}
.lvdc-modal .lvdc-inline-custom-editor__row{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) auto auto !important;
  gap:8px !important;
}
.lvdc-modal .lvdc-inline-custom-editor__input{
  min-width:0 !important;
  height:34px !important;
  border-radius:12px !important;
  border:1px solid #E5E7D6 !important;
  background:#FFFFFF !important;
  padding:0 11px !important;
  font-size:12px !important;
  color:#171717 !important;
}
.lvdc-modal .lvdc-inline-custom-editor__save,
.lvdc-modal .lvdc-inline-custom-editor__cancel{
  height:34px !important;
  border-radius:12px !important;
  border:1px solid #E6E6E6 !important;
  background:#FFFFFF !important;
  color:#555 !important;
  font-size:11px !important;
  font-weight:700 !important;
  padding:0 11px !important;
}
.lvdc-modal .lvdc-inline-custom-editor__save{
  border-color:#DDE9B6 !important;
  background:#FBFCF5 !important;
  color:#5B6B1F !important;
}

/* task type custom manager */
.lvdc-modal .lvdc-custom-type-manager{
  margin-top:8px !important;
  padding-top:8px !important;
  border-top:1px dashed #E8E8E8 !important;
}
.lvdc-modal .lvdc-custom-type-title{
  font-size:10.5px !important;
  line-height:14px !important;
  color:#9A9A9A !important;
  margin-bottom:7px !important;
}
.lvdc-modal .lvdc-custom-type-row{
  display:flex !important;
  flex-wrap:wrap !important;
  gap:6px !important;
}
.lvdc-modal .lvdc-custom-type-chip{
  display:inline-flex !important;
  align-items:center !important;
  gap:5px !important;
  height:26px !important;
  padding:0 8px 0 10px !important;
  border-radius:999px !important;
  border:1px solid #E6E6E6 !important;
  background:#FFFFFF !important;
  color:#666 !important;
  font-size:10.5px !important;
  font-weight:650 !important;
}
.lvdc-modal .lvdc-custom-type-chip__remove{
  width:18px !important;
  height:18px !important;
  border:none !important;
  border-radius:999px !important;
  background:#F3F3F3 !important;
  color:#8B8B8B !important;
  font-size:13px !important;
  line-height:1 !important;
  padding:0 !important;
}

/* slight responsive improvement for wider rhythm panel */
@media (max-width: 1280px){
  .lvtt-page .lvdc-capacity-mini{ margin-bottom:16px !important; }
}


/* ==== lovix-tasks-v236-final-fixes.css ==== */
/* ======================================================================
   Lovix v236 · overdue gradient + custom picker + rhythm dot polish
   ====================================================================== */

/* 1) Overdue expanded cards: use the same calm neutral gradient feel as committed/upcoming */
.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card,
.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card.is-overdue-fixed,
.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card.is-overdue-expanded{
  border-color:#ECECEC !important;
}
.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card.is-overdue-fixed,
.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card.is-overdue-expanded{
  background:linear-gradient(180deg,#FFFFFF 0%, #FFFFFF 74%, #FCFCFC 100%) !important;
  box-shadow:0 8px 22px rgba(0,0,0,.018) !important;
}
.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card.is-overdue-fixed:hover,
.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card.is-overdue-expanded:hover{
  background:linear-gradient(180deg,#FFFFFF 0%, #FFFFFF 71%, #FBFCF7 100%) !important;
  border-color:#E2E8DA !important;
  box-shadow:0 10px 26px rgba(0,0,0,.024) !important;
}

/* 2) Contract middle area: still clickable, but no gray hover hint block */
.lvtt-page .lvdc-contract{
  cursor:pointer !important;
}
.lvtt-page .lvdc-contract:hover,
.lvtt-page .lvdc-contract:active,
.lvtt-page .lvdc-contract:focus{
  background:transparent !important;
  border-radius:0 !important;
  box-shadow:none !important;
}

/* 3) Rhythm panel dot: lock position and keep a cleaner breathing-light effect */
.lvtt-page .lvdc-rhythm .lvtt-titem{
  position:relative !important;
}
.lvtt-page .lvdc-rhythm .lvtt-dot{
  left:13px !important;
  top:18px !important;
  width:12px !important;
  height:12px !important;
  border-radius:999px !important;
  border:2px solid #FFFFFF !important;
  background:#FFFFFF !important;
  box-shadow:0 0 0 1px #E3E3E3 !important;
  transform:none !important;
}
.lvtt-page .lvdc-rhythm .lvtt-dot::before{
  content:"";
  position:absolute;
  inset:2px;
  border-radius:999px;
  background:#D1DF58;
}
.lvtt-page .lvdc-rhythm .lvtt-dot::after{
  content:"";
  position:absolute;
  inset:2px;
  border-radius:999px;
  background:rgba(209,223,88,.22);
  animation:lvdcRhythmPulse 2s ease-out infinite;
}
@keyframes lvdcRhythmPulse{
  0%{transform:scale(1);opacity:.75;}
  70%{transform:scale(2.05);opacity:0;}
  100%{transform:scale(2.05);opacity:0;}
}

/* 4) Custom date/time picker trigger surface */
.lvdc-modal .lvdc-picker-wrap{
  position:relative !important;
  width:100% !important;
}
.lvdc-modal .lvdc-picker-wrap > input.lvdc-picker-ready{
  width:100% !important;
  padding-right:44px !important;
  cursor:pointer !important;
  background:#FFFFFF !important;
}
.lvdc-modal .lvdc-picker-trigger{
  position:absolute !important;
  right:12px !important;
  top:50% !important;
  transform:translateY(-50%) !important;
  width:24px !important;
  height:24px !important;
  border:none !important;
  background:transparent !important;
  border-radius:999px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  color:#8C8C8C !important;
  padding:0 !important;
  cursor:pointer !important;
}
.lvdc-modal .lvdc-picker-trigger:hover{
  background:#F6F6F6 !important;
  color:#555 !important;
}
.lvdc-modal .lvdc-picker-trigger svg{
  width:15px !important;
  height:15px !important;
  display:block !important;
}

/* floating picker */
.lvdc-picker-pop{
  position:fixed !important;
  z-index:9800 !important;
  width:min(320px, calc(100vw - 24px)) !important;
  background:#FFFFFF !important;
  border:1px solid #E8E8E8 !important;
  border-radius:22px !important;
  box-shadow:0 24px 60px rgba(0,0,0,.10), 0 3px 10px rgba(0,0,0,.04) !important;
  padding:14px !important;
}
.lvdc-picker-pop[hidden]{display:none !important;}
.lvdc-picker-head{
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:10px !important;
  margin-bottom:10px !important;
}
.lvdc-picker-title{
  font-size:14px !important;
  line-height:20px !important;
  font-weight:720 !important;
  color:#171717 !important;
}
.lvdc-picker-head-actions{
  display:flex !important;
  align-items:center !important;
  gap:6px !important;
}
.lvdc-picker-nav{
  width:30px !important;
  height:30px !important;
  border-radius:999px !important;
  border:1px solid #E8E8E8 !important;
  background:#FFFFFF !important;
  color:#6F6F6F !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  cursor:pointer !important;
}
.lvdc-picker-nav:hover{background:#F8F8F8 !important;color:#171717 !important;}

.lvdc-picker-weekdays,
.lvdc-picker-grid{
  display:grid !important;
  grid-template-columns:repeat(7,minmax(0,1fr)) !important;
  gap:6px !important;
}
.lvdc-picker-weekdays{
  margin-bottom:8px !important;
}
.lvdc-picker-weekday{
  height:24px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  font-size:11px !important;
  font-weight:650 !important;
  color:#A0A0A0 !important;
}
.lvdc-picker-day{
  height:36px !important;
  border:none !important;
  border-radius:12px !important;
  background:#FFFFFF !important;
  color:#4B4B4B !important;
  font-size:13px !important;
  font-weight:600 !important;
  cursor:pointer !important;
}
.lvdc-picker-day:hover{background:#F7F8F1 !important;color:#171717 !important;}
.lvdc-picker-day.is-muted{color:#C0C0C0 !important;}
.lvdc-picker-day.is-today{box-shadow:inset 0 0 0 1px #DDE9B6 !important;background:#FBFCF5 !important;color:#5D6E20 !important;}
.lvdc-picker-day.is-selected{background:#171717 !important;color:#FFFFFF !important;}

.lvdc-picker-foot{
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:10px !important;
  margin-top:12px !important;
  padding-top:10px !important;
  border-top:1px solid #F0F0F0 !important;
}
.lvdc-picker-link{
  border:none !important;
  background:transparent !important;
  padding:0 !important;
  font-size:12px !important;
  font-weight:650 !important;
  color:#7A7A7A !important;
  cursor:pointer !important;
}
.lvdc-picker-link:hover{color:#171717 !important;}

/* time picker */
.lvdc-time-list{
  max-height:272px !important;
  overflow:auto !important;
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:8px !important;
  padding-right:2px !important;
  scrollbar-width:none !important;
}
.lvdc-time-list::-webkit-scrollbar{display:none !important;}
.lvdc-time-option{
  height:36px !important;
  border-radius:12px !important;
  border:1px solid #EAEAEA !important;
  background:#FFFFFF !important;
  color:#555 !important;
  font-size:12px !important;
  font-weight:650 !important;
  cursor:pointer !important;
}
.lvdc-time-option:hover{background:#F8F8F8 !important;color:#171717 !important;}
.lvdc-time-option.is-selected{
  border-color:#171717 !important;
  background:#171717 !important;
  color:#FFFFFF !important;
}

@media (max-width: 760px){
  .lvdc-picker-pop{width:min(320px, calc(100vw - 20px)) !important;}
  .lvdc-time-list{grid-template-columns:repeat(2,minmax(0,1fr)) !important;}
}


/* ==== lovix-tasks-v237-overdue-match-upcoming.css ==== */
/* v237: make overdue expanded cards use the same neutral gradient mood as upcoming/committed */
.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card,
.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card.is-overdue-fixed,
.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card.is-overdue-expanded{
  border-color:#ECECEC !important;
}

.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card.is-overdue-fixed,
.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card.is-overdue-expanded{
  background:linear-gradient(180deg,#FFFFFF 0%, #FFFFFF 70%, #FBFBFB 100%) !important;
  border-color:#ECECEC !important;
  box-shadow:0 8px 22px rgba(0,0,0,.018) !important;
}

.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card.is-overdue-fixed:hover,
.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card.is-overdue-expanded:hover{
  background:linear-gradient(180deg,#FFFFFF 0%, #FFFFFF 67%, #FAFAFA 100%) !important;
  border-color:#E2E8DA !important;
  box-shadow:0 10px 24px rgba(0,0,0,.022) !important;
}


/* ==== lovix-tasks-v238-overdue-gradient-refine.css ==== */
/* v238: overdue gradients refined
   - collapsed overdue cards: extremely light grey bottom fade
   - expanded/fixed overdue cards: match committed-today green-tinted Lovix gradient
*/

/* 01 · collapsed overdue mini card = very subtle neutral grey from bottom */
.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card.is-overdue-collapsed{
  background:linear-gradient(180deg,#FFFFFF 0%,#FFFFFF 72%,#FCFCFC 100%) !important;
  border-color:#ECECEC !important;
  box-shadow:0 4px 14px rgba(0,0,0,.014) !important;
}
.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card.is-overdue-collapsed:hover{
  background:linear-gradient(180deg,#FFFFFF 0%,#FFFFFF 70%,#FBFBFB 100%) !important;
  border-color:#E2E8DA !important;
  box-shadow:0 6px 18px rgba(0,0,0,.020) !important;
}

/* 02 · expanded/fixed overdue card = same green-bottom mood as committed */
.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card,
.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card.is-overdue-fixed,
.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card.is-overdue-expanded{
  border-color:#ECECEC !important;
}

.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card.is-overdue-fixed,
.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card.is-overdue-expanded{
  background:linear-gradient(180deg,#FFFFFF 0%,#FFFFFF 60%,#FDFEFC 76%,#FBFCF7 100%) !important;
  border-color:#ECECEC !important;
  box-shadow:0 8px 22px rgba(0,0,0,.018) !important;
}

.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card.is-overdue-fixed:hover,
.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card.is-overdue-expanded:hover{
  background:linear-gradient(180deg,#FFFFFF 0%,#FFFFFF 58%,#FCFDF9 74%,#FAFCF4 100%) !important;
  border-color:#E2E8DA !important;
  box-shadow:0 10px 24px rgba(0,0,0,.022) !important;
}


/* ==== lovix-tasks-v239-overdue-gradient-match-committed.css ==== */
/* v239 · overdue gradients
   1) expanded/fixed overdue cards: match committed-today wider green fade range
   2) collapsed overdue cards: clearer ultra-light grey bottom fade
*/

/* remove any earlier overdue gradient ambiguity */
.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card::after{
  display:none !important;
  content:none !important;
}

/* expanded / fixed overdue = same wider gradient scope feeling as committed */
.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card.is-overdue-fixed,
.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card.is-overdue-expanded{
  background:linear-gradient(180deg,
    #FFFFFF 0%,
    #FFFFFF 34%,
    #FDFEFC 56%,
    #FBFCF8 78%,
    #FAFCF5 100%) !important;
  border-color:#ECECEC !important;
  box-shadow:0 8px 22px rgba(0,0,0,.018) !important;
}

.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card.is-overdue-fixed:hover,
.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card.is-overdue-expanded:hover{
  background:linear-gradient(180deg,
    #FFFFFF 0%,
    #FFFFFF 32%,
    #FCFDF9 54%,
    #FAFCF5 76%,
    #F8FBF1 100%) !important;
  border-color:#E2E8DA !important;
  box-shadow:0 10px 24px rgba(0,0,0,.022) !important;
}

/* collapsed overdue = visible but extremely soft neutral grey fade from bottom */
.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card.is-overdue-collapsed{
  background:linear-gradient(180deg,
    #FFFFFF 0%,
    #FFFFFF 44%,
    #FCFCFC 76%,
    #F8F8F8 100%) !important;
  border-color:#ECECEC !important;
  box-shadow:0 4px 14px rgba(0,0,0,.014) !important;
}

.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card.is-overdue-collapsed:hover{
  background:linear-gradient(180deg,
    #FFFFFF 0%,
    #FFFFFF 42%,
    #FBFBFB 74%,
    #F7F7F7 100%) !important;
  border-color:#E6E6E6 !important;
  box-shadow:0 6px 18px rgba(0,0,0,.020) !important;
}


/* ==== lovix-tasks-v240-committed-overdue-gradient-tune.css ==== */
/* v240 · committed consistency + overdue gradient tune */

/* 1) committed expanded/fixed cards: all match the first committed card */
.lvtt-page .lvdc-group[data-group="committed"] .lvdc-card.is-committed-fixed,
.lvtt-page .lvdc-group[data-group="committed"] .lvdc-card.is-committed-expanded{
  background:linear-gradient(180deg,
    #FFFFFF 0%,
    #FFFFFF 34%,
    #FDFEFC 56%,
    #FBFCF8 78%,
    #FAFCF5 100%) !important;
  border-color:#ECECEC !important;
}

.lvtt-page .lvdc-group[data-group="committed"] .lvdc-card.is-committed-fixed:hover,
.lvtt-page .lvdc-group[data-group="committed"] .lvdc-card.is-committed-expanded:hover{
  background:linear-gradient(180deg,
    #FFFFFF 0%,
    #FFFFFF 32%,
    #FCFDF9 54%,
    #FAFCF5 76%,
    #F8FBF1 100%) !important;
}

/* 2) overdue expanded/fixed: keep same range/border, only switch to very light orange wash */
.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card.is-overdue-fixed,
.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card.is-overdue-expanded{
  background:linear-gradient(180deg,
    #FFFFFF 0%,
    #FFFFFF 34%,
    #FFFDFC 56%,
    #FFF8F3 78%,
    #FFF3EB 100%) !important;
}

.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card.is-overdue-fixed:hover,
.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card.is-overdue-expanded:hover{
  background:linear-gradient(180deg,
    #FFFFFF 0%,
    #FFFFFF 32%,
    #FFFBF9 54%,
    #FFF6F0 76%,
    #FFF0E7 100%) !important;
}

/* 3) overdue collapsed: make the pale grey fade slightly more visible, still very subtle */
.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card.is-overdue-collapsed{
  background:linear-gradient(180deg,
    #FFFFFF 0%,
    #FFFFFF 56%,
    #FCFCFC 80%,
    #F5F5F5 100%) !important;
}

.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card.is-overdue-collapsed:hover{
  background:linear-gradient(180deg,
    #FFFFFF 0%,
    #FFFFFF 54%,
    #FBFBFB 78%,
    #F3F3F3 100%) !important;
}


/* ==== lovix-tasks-v241-soft-gradient-dot-tune.css ==== */
/* v241 · soften overdue wash + reduce committed collapse gray + smaller rhythm dots */

/* 1) committed collapsed cards: reduce grayness, keep only a very soft neutral fade */
.lvtt-page .lvdc-group[data-group="committed"] .lvdc-card.is-committed-collapsed{
  background:linear-gradient(180deg,
    #FFFFFF 0%,
    #FFFFFF 70%,
    #FEFEFE 88%,
    #FBFBFB 100%) !important;
  border-color:#ECECEC !important;
}
.lvtt-page .lvdc-group[data-group="committed"] .lvdc-card.is-committed-collapsed:hover{
  background:linear-gradient(180deg,
    #FFFFFF 0%,
    #FFFFFF 68%,
    #FDFEFB 86%,
    #F9FBF4 100%) !important;
}

/* 2) overdue expanded/fixed cards: keep same area and border, only make the internal wash lighter,
   slightly more yellow-beige and less orange */
.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card.is-overdue-fixed,
.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card.is-overdue-expanded{
  background:linear-gradient(180deg,
    #FFFFFF 0%,
    #FFFFFF 34%,
    #FFFDFC 57%,
    #FFF9F5 79%,
    #FEF8F0 100%) !important;
}
.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card.is-overdue-fixed:hover,
.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card.is-overdue-expanded:hover{
  background:linear-gradient(180deg,
    #FFFFFF 0%,
    #FFFFFF 32%,
    #FFFDFC 55%,
    #FFF8F3 77%,
    #FDF6ED 100%) !important;
}

/* 3) overdue collapsed cards: slightly visible pale-grey fade, but still restrained */
.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card.is-overdue-collapsed{
  background:linear-gradient(180deg,
    #FFFFFF 0%,
    #FFFFFF 58%,
    #FCFCFC 82%,
    #F6F6F6 100%) !important;
}
.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card.is-overdue-collapsed:hover{
  background:linear-gradient(180deg,
    #FFFFFF 0%,
    #FFFFFF 56%,
    #FBFBFB 80%,
    #F4F4F4 100%) !important;
}

/* 4) rhythm panel dots: smaller outer ring, lighter breathing halo */
.lvtt-page .lvdc-rhythm .lvtt-dot{
  left:14px !important;
  top:19px !important;
  width:10px !important;
  height:10px !important;
  border:1px solid #FFFFFF !important;
  background:#FFFFFF !important;
  box-shadow:0 0 0 1px rgba(225,225,225,.92) !important;
}
.lvtt-page .lvdc-rhythm .lvtt-dot::before{
  inset:2px !important;
  background:#D3DF63 !important;
}
.lvtt-page .lvdc-rhythm .lvtt-dot::after{
  inset:1px !important;
  background:rgba(211,223,99,.10) !important;
  animation:lvdcRhythmPulseSoft 2.2s ease-out infinite !important;
}
@keyframes lvdcRhythmPulseSoft{
  0%{transform:scale(1);opacity:.55;}
  70%{transform:scale(1.75);opacity:0;}
  100%{transform:scale(1.75);opacity:0;}
}


/* ==== lovix-tasks-v243-upcoming-portrait-cards.css ==== */
/* v243 · revert to v241 baseline, only rework Upcoming cards
   Goal: keep 3-column layout, make cards taller portrait rectangles,
   refine label/type hierarchy for a more premium minimal feel. */

.lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-grid{
  /* keep original 3-up responsive grid behavior from the base version */
  gap:18px !important;
  align-items:start !important;
}

.lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-card{
  min-height:392px !important;
  height:auto !important;
  align-self:start !important;
  padding:26px 28px 24px 28px !important;
  gap:12px !important;
  border-radius:30px !important;
}

.lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-card-top{
  gap:14px !important;
  align-items:flex-start !important;
}

.lvtt-page .lvdc-group[data-group="upcoming"] .lvtt-avatar{
  width:34px !important;
  height:34px !important;
  min-width:34px !important;
  font-size:10px !important;
}

.lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-next{
  font-size:14.5px !important;
  line-height:20px !important;
  font-weight:700 !important;
  letter-spacing:-0.018em !important;
  -webkit-line-clamp:2 !important;
}

.lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-context{
  font-size:10.8px !important;
  line-height:15px !important;
  color:#9B9B9B !important;
  margin-top:6px !important;
  -webkit-line-clamp:1 !important;
}

.lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-card-headline{
  margin-top:10px !important;
  padding-top:10px !important;
  gap:8px !important;
  border-top:1px solid #F0F0F0 !important;
}

.lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-type-chip,
.lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-priority-chip{
  height:22px !important;
  padding:0 9px !important;
  font-size:8.8px !important;
  line-height:22px !important;
  font-weight:640 !important;
  border-radius:999px !important;
  letter-spacing:0 !important;
}

.lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-type-chip{
  color:#7B7B7B !important;
  border-color:#ECECEC !important;
  background:#FFFFFF !important;
}

.lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-priority-chip{
  color:#8B6B23 !important;
  border-color:#E7D7A5 !important;
  background:#FFFEF9 !important;
}

.lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-priority-chip:not(.a){
  color:#7E7E7E !important;
  border-color:#ECECEC !important;
  background:#FFFFFF !important;
}

.lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-contract{
  padding:12px 0 10px !important;
  gap:8px !important;
  margin-top:0 !important;
}

.lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-contract-row{
  grid-template-columns:68px minmax(0,1fr) !important;
  gap:10px !important;
  font-size:10.2px !important;
  line-height:15.5px !important;
}

.lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-contract-row .k{
  font-size:10px !important;
  line-height:15.5px !important;
  color:#A3A3A3 !important;
  font-weight:600 !important;
}

.lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-statusline{
  gap:6px !important;
  margin-top:0 !important;
}

.lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-status-chip,
.lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-mini-chip{
  height:22px !important;
  padding:0 8px !important;
  font-size:8.7px !important;
  font-weight:620 !important;
}

.lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-milestones{
  gap:6px !important;
  margin-top:0 !important;
  min-height:0 !important;
}

.lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-ms{
  height:21px !important;
  padding:0 8px !important;
  font-size:8.6px !important;
  font-weight:620 !important;
}

.lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-card-actions{
  margin-top:auto !important;
  padding-top:8px !important;
  gap:8px !important;
}

.lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-card-actions .lvtt-mini{
  height:30px !important;
  padding:0 14px !important;
  font-size:10px !important;
  font-weight:650 !important;
  border-radius:999px !important;
}


/* ==== lovix-tasks-v249-queue-editor.css ==== */
/* ======================================================================
   Lovix v247 · Task Execution Queue Visual Editor (independent sections)
   - Redo editor so committed / overdue / upcoming can be adjusted separately.
   - Exposes spacing for avatar area, top chips, DoD rows, status rows,
     milestone rows and action rows.
   ====================================================================== */

:root{
  --lvqe-queue-gap: 24px;
  --lvqe-group-gap: 14px;
  --lvqe-group-mb: 22px;
  --lvqe-grid-gap: 18px;

  --lvqe-section-title-size: 16px;
  --lvqe-section-title-line: 20px;
  --lvqe-section-desc-size: 12px;
  --lvqe-section-desc-line: 18px;
  --lvqe-count-size: 11px;
  --lvqe-count-size-box: 26px;

  --lvqe-card-radius: 30px;
  --lvqe-card-border-width: 1px;
  --lvqe-card-border: #ECECEC;
  --lvqe-card-hover-border: #E2E8DA;
  --lvqe-card-shadow-y: 8px;
  --lvqe-card-shadow-blur: 22px;
  --lvqe-card-shadow-alpha: 0.018;

  --lvqe-title-size: 14.5px;
  --lvqe-title-line: 20px;
  --lvqe-title-weight: 700;
  --lvqe-title-letter: -0.018em;
  --lvqe-meta-size: 10.8px;
  --lvqe-meta-line: 15px;
  --lvqe-meta-color: #9B9B9B;
  --lvqe-contract-size: 10.2px;
  --lvqe-contract-line: 15.5px;
  --lvqe-contract-key-size: 10px;
  --lvqe-contract-key-color: #A3A3A3;

  --lvqe-type-chip-radius: 999px;
  --lvqe-chip-radius: 999px;
  --lvqe-action-radius: 999px;
  --lvqe-chip-h: 22px;
  --lvqe-chip-pad-x: 8px;
  --lvqe-chip-size: 8.8px;
  --lvqe-chip-weight: 640;
  --lvqe-action-h: 30px;
  --lvqe-action-pad-x: 14px;
  --lvqe-action-size: 10px;

  /* committed */
  --lvqe-committed-pad-top: 26px;
  --lvqe-committed-pad-x: 28px;
  --lvqe-committed-pad-bottom: 24px;
  --lvqe-committed-exp-min-h: 340px;
  --lvqe-committed-coll-min-h: 96px;
  --lvqe-committed-avatar-size: 34px;
  --lvqe-committed-avatar-font: 10px;
  --lvqe-committed-top-gap: 14px;
  --lvqe-committed-headline-mt: 0px;
  --lvqe-committed-headline-pt: 0px;
  --lvqe-committed-headline-gap: 8px;
  --lvqe-committed-headline-border: 0;
  --lvqe-committed-contract-pt: 12px;
  --lvqe-committed-contract-pb: 10px;
  --lvqe-committed-contract-gap: 8px;
  --lvqe-committed-contract-key-width: 68px;
  --lvqe-committed-status-mt: 0px;
  --lvqe-committed-status-gap: 6px;
  --lvqe-committed-ms-mt: 0px;
  --lvqe-committed-ms-gap: 6px;
  --lvqe-committed-actions-mt: 0px;
  --lvqe-committed-actions-pt: 8px;
  --lvqe-committed-action-gap: 8px;
  --lvqe-committed-exp-c1: #FFFFFF;
  --lvqe-committed-exp-c2: #FFFFFF;
  --lvqe-committed-exp-c3: #FDFEFC;
  --lvqe-committed-exp-c4: #FBFCF8;
  --lvqe-committed-exp-c5: #FAFCF5;
  --lvqe-committed-exp-s2: 34%;
  --lvqe-committed-exp-s3: 56%;
  --lvqe-committed-exp-s4: 78%;
  --lvqe-committed-coll-c1: #FFFFFF;
  --lvqe-committed-coll-c2: #FEFEFE;
  --lvqe-committed-coll-c3: #FAFAFA;
  --lvqe-committed-coll-s2: 78%;
  --lvqe-committed-coll-s3: 100%;

  /* overdue */
  --lvqe-overdue-pad-top: 26px;
  --lvqe-overdue-pad-x: 28px;
  --lvqe-overdue-pad-bottom: 24px;
  --lvqe-overdue-exp-min-h: 340px;
  --lvqe-overdue-coll-min-h: 96px;
  --lvqe-overdue-avatar-size: 34px;
  --lvqe-overdue-avatar-font: 10px;
  --lvqe-overdue-top-gap: 14px;
  --lvqe-overdue-headline-mt: 0px;
  --lvqe-overdue-headline-pt: 0px;
  --lvqe-overdue-headline-gap: 8px;
  --lvqe-overdue-headline-border: 0;
  --lvqe-overdue-contract-pt: 12px;
  --lvqe-overdue-contract-pb: 10px;
  --lvqe-overdue-contract-gap: 8px;
  --lvqe-overdue-contract-key-width: 68px;
  --lvqe-overdue-status-mt: 0px;
  --lvqe-overdue-status-gap: 6px;
  --lvqe-overdue-ms-mt: 0px;
  --lvqe-overdue-ms-gap: 6px;
  --lvqe-overdue-actions-mt: 0px;
  --lvqe-overdue-actions-pt: 8px;
  --lvqe-overdue-action-gap: 8px;
  --lvqe-overdue-exp-c1: #FFFFFF;
  --lvqe-overdue-exp-c2: #FFFFFF;
  --lvqe-overdue-exp-c3: #FFFDFC;
  --lvqe-overdue-exp-c4: #FFF9F5;
  --lvqe-overdue-exp-c5: #FEF8F0;
  --lvqe-overdue-exp-s2: 34%;
  --lvqe-overdue-exp-s3: 57%;
  --lvqe-overdue-exp-s4: 79%;
  --lvqe-overdue-coll-c1: #FFFFFF;
  --lvqe-overdue-coll-c2: #FCFCFC;
  --lvqe-overdue-coll-c3: #F6F6F6;
  --lvqe-overdue-coll-s2: 58%;
  --lvqe-overdue-coll-s3: 100%;

  /* upcoming */
  --lvqe-upcoming-min-h: 392px;
  --lvqe-upcoming-pad-top: 26px;
  --lvqe-upcoming-pad-x: 28px;
  --lvqe-upcoming-pad-bottom: 24px;
  --lvqe-upcoming-avatar-size: 34px;
  --lvqe-upcoming-avatar-font: 10px;
  --lvqe-upcoming-top-gap: 14px;
  --lvqe-upcoming-headline-mt: 10px;
  --lvqe-upcoming-headline-pt: 10px;
  --lvqe-upcoming-headline-gap: 8px;
  --lvqe-upcoming-headline-border: 0;
  --lvqe-upcoming-contract-pt: 12px;
  --lvqe-upcoming-contract-pb: 10px;
  --lvqe-upcoming-contract-gap: 8px;
  --lvqe-upcoming-contract-key-width: 68px;
  --lvqe-upcoming-status-mt: 0px;
  --lvqe-upcoming-status-gap: 6px;
  --lvqe-upcoming-ms-mt: 0px;
  --lvqe-upcoming-ms-gap: 6px;
  --lvqe-upcoming-actions-mt: 0px;
  --lvqe-upcoming-actions-pt: 8px;
  --lvqe-upcoming-action-gap: 8px;
  --lvqe-upcoming-c1: #FFFFFF;
  --lvqe-upcoming-c2: #FFFFFF;
  --lvqe-upcoming-c3: #FBFCF8;
  --lvqe-upcoming-c4: #FAFCF5;
  --lvqe-upcoming-s2: 62%;
  --lvqe-upcoming-s3: 100%;

  --lvqe-waiting-empty-bg: #FFFFFF;
  --lvqe-editor-accent: #D6EB43;
}

/* Queue-level variable hooks */
.lvtt-page .lvdc-queue{ gap:var(--lvqe-queue-gap) !important; }
.lvtt-page .lvdc-group{ gap:var(--lvqe-group-gap) !important; margin-bottom:var(--lvqe-group-mb) !important; }
.lvtt-page .lvdc-grid{ gap:var(--lvqe-grid-gap) !important; }
.lvtt-page .lvdc-group-head h3,
.lvtt-page .lvdc-group-title{ font-size:var(--lvqe-section-title-size) !important; line-height:var(--lvqe-section-title-line) !important; }
.lvtt-page .lvdc-group-desc{ font-size:var(--lvqe-section-desc-size) !important; line-height:var(--lvqe-section-desc-line) !important; }
.lvtt-page .lvdc-group-count{ width:var(--lvqe-count-size-box) !important; height:var(--lvqe-count-size-box) !important; font-size:var(--lvqe-count-size) !important; }

.lvtt-page .lvdc-card{
  border-radius:var(--lvqe-card-radius) !important;
  border-width:var(--lvqe-card-border-width) !important;
  border-color:var(--lvqe-card-border) !important;
  box-shadow:0 var(--lvqe-card-shadow-y) var(--lvqe-card-shadow-blur) rgba(0,0,0,var(--lvqe-card-shadow-alpha)) !important;
  gap:12px !important;
}
.lvtt-page .lvdc-card:hover{ border-color:var(--lvqe-card-hover-border) !important; }
.lvtt-page .lvdc-next{ font-size:var(--lvqe-title-size) !important; line-height:var(--lvqe-title-line) !important; font-weight:var(--lvqe-title-weight) !important; letter-spacing:var(--lvqe-title-letter) !important; }
.lvtt-page .lvdc-context{ font-size:var(--lvqe-meta-size) !important; line-height:var(--lvqe-meta-line) !important; color:var(--lvqe-meta-color) !important; }
.lvtt-page .lvdc-contract-row{ font-size:var(--lvqe-contract-size) !important; line-height:var(--lvqe-contract-line) !important; }
.lvtt-page .lvdc-contract-row .k{ font-size:var(--lvqe-contract-key-size) !important; line-height:var(--lvqe-contract-line) !important; color:var(--lvqe-contract-key-color) !important; }

.lvtt-page .lvdc-type-chip,
.lvtt-page .lvdc-priority-chip{
  height:var(--lvqe-chip-h) !important;
  padding:0 var(--lvqe-chip-pad-x) !important;
  font-size:var(--lvqe-chip-size) !important;
  font-weight:var(--lvqe-chip-weight) !important;
  border-radius:var(--lvqe-type-chip-radius) !important;
}
.lvtt-page .lvdc-status-chip,
.lvtt-page .lvdc-mini-chip,
.lvtt-page .lvdc-ms{
  height:var(--lvqe-chip-h) !important;
  padding:0 var(--lvqe-chip-pad-x) !important;
  font-size:var(--lvqe-chip-size) !important;
  font-weight:var(--lvqe-chip-weight) !important;
  border-radius:var(--lvqe-chip-radius) !important;
}
.lvtt-page .lvdc-card-actions .lvtt-mini{
  height:var(--lvqe-action-h) !important;
  padding:0 var(--lvqe-action-pad-x) !important;
  font-size:var(--lvqe-action-size) !important;
  border-radius:var(--lvqe-action-radius) !important;
}

/* helper mixins via selectors */
.lvtt-page .lvdc-group[data-group="committed"] .lvdc-card{
  padding:var(--lvqe-committed-pad-top) var(--lvqe-committed-pad-x) var(--lvqe-committed-pad-bottom) var(--lvqe-committed-pad-x) !important;
}
.lvtt-page .lvdc-group[data-group="committed"] .lvdc-card-top{ gap:var(--lvqe-committed-top-gap) !important; align-items:flex-start !important; }
.lvtt-page .lvdc-group[data-group="committed"] .lvtt-avatar{ width:var(--lvqe-committed-avatar-size) !important; height:var(--lvqe-committed-avatar-size) !important; min-width:var(--lvqe-committed-avatar-size) !important; font-size:var(--lvqe-committed-avatar-font) !important; }
.lvtt-page .lvdc-group[data-group="committed"] .lvdc-card-headline{ margin-top:var(--lvqe-committed-headline-mt) !important; padding-top:var(--lvqe-committed-headline-pt) !important; gap:var(--lvqe-committed-headline-gap) !important; border-top:1px solid rgba(240,240,240,var(--lvqe-committed-headline-border)) !important; }
.lvtt-page .lvdc-group[data-group="committed"] .lvdc-contract{ padding:var(--lvqe-committed-contract-pt) 0 var(--lvqe-committed-contract-pb) !important; gap:var(--lvqe-committed-contract-gap) !important; margin-top:0 !important; }
.lvtt-page .lvdc-group[data-group="committed"] .lvdc-contract-row{ grid-template-columns:var(--lvqe-committed-contract-key-width) minmax(0,1fr) !important; gap:10px !important; }
.lvtt-page .lvdc-group[data-group="committed"] .lvdc-statusline{ gap:var(--lvqe-committed-status-gap) !important; margin-top:var(--lvqe-committed-status-mt) !important; }
.lvtt-page .lvdc-group[data-group="committed"] .lvdc-milestones{ gap:var(--lvqe-committed-ms-gap) !important; margin-top:var(--lvqe-committed-ms-mt) !important; min-height:0 !important; }
.lvtt-page .lvdc-group[data-group="committed"] .lvdc-card-actions{ gap:var(--lvqe-committed-action-gap) !important; margin-top:var(--lvqe-committed-actions-mt) !important; padding-top:var(--lvqe-committed-actions-pt) !important; }

.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card{
  padding:var(--lvqe-overdue-pad-top) var(--lvqe-overdue-pad-x) var(--lvqe-overdue-pad-bottom) var(--lvqe-overdue-pad-x) !important;
}
.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card-top{ gap:var(--lvqe-overdue-top-gap) !important; align-items:flex-start !important; }
.lvtt-page .lvdc-group[data-group="overdue"] .lvtt-avatar{ width:var(--lvqe-overdue-avatar-size) !important; height:var(--lvqe-overdue-avatar-size) !important; min-width:var(--lvqe-overdue-avatar-size) !important; font-size:var(--lvqe-overdue-avatar-font) !important; }
.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card-headline{ margin-top:var(--lvqe-overdue-headline-mt) !important; padding-top:var(--lvqe-overdue-headline-pt) !important; gap:var(--lvqe-overdue-headline-gap) !important; border-top:1px solid rgba(240,240,240,var(--lvqe-overdue-headline-border)) !important; }
.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-contract{ padding:var(--lvqe-overdue-contract-pt) 0 var(--lvqe-overdue-contract-pb) !important; gap:var(--lvqe-overdue-contract-gap) !important; margin-top:0 !important; }
.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-contract-row{ grid-template-columns:var(--lvqe-overdue-contract-key-width) minmax(0,1fr) !important; gap:10px !important; }
.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-statusline{ gap:var(--lvqe-overdue-status-gap) !important; margin-top:var(--lvqe-overdue-status-mt) !important; }
.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-milestones{ gap:var(--lvqe-overdue-ms-gap) !important; margin-top:var(--lvqe-overdue-ms-mt) !important; min-height:0 !important; }
.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card-actions{ gap:var(--lvqe-overdue-action-gap) !important; margin-top:var(--lvqe-overdue-actions-mt) !important; padding-top:var(--lvqe-overdue-actions-pt) !important; }

.lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-grid{ gap:18px !important; align-items:start !important; }
.lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-card{
  min-height:var(--lvqe-upcoming-min-h) !important;
  height:auto !important;
  align-self:start !important;
  padding:var(--lvqe-upcoming-pad-top) var(--lvqe-upcoming-pad-x) var(--lvqe-upcoming-pad-bottom) var(--lvqe-upcoming-pad-x) !important;
}
.lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-card-top{ gap:var(--lvqe-upcoming-top-gap) !important; align-items:flex-start !important; }
.lvtt-page .lvdc-group[data-group="upcoming"] .lvtt-avatar{ width:var(--lvqe-upcoming-avatar-size) !important; height:var(--lvqe-upcoming-avatar-size) !important; min-width:var(--lvqe-upcoming-avatar-size) !important; font-size:var(--lvqe-upcoming-avatar-font) !important; }
.lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-card-headline{ margin-top:var(--lvqe-upcoming-headline-mt) !important; padding-top:var(--lvqe-upcoming-headline-pt) !important; gap:var(--lvqe-upcoming-headline-gap) !important; border-top:1px solid rgba(240,240,240,var(--lvqe-upcoming-headline-border)) !important; }
.lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-contract{ padding:var(--lvqe-upcoming-contract-pt) 0 var(--lvqe-upcoming-contract-pb) !important; gap:var(--lvqe-upcoming-contract-gap) !important; margin-top:0 !important; }
.lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-contract-row{ grid-template-columns:var(--lvqe-upcoming-contract-key-width) minmax(0,1fr) !important; gap:10px !important; }
.lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-statusline{ gap:var(--lvqe-upcoming-status-gap) !important; margin-top:var(--lvqe-upcoming-status-mt) !important; }
.lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-milestones{ gap:var(--lvqe-upcoming-ms-gap) !important; margin-top:var(--lvqe-upcoming-ms-mt) !important; min-height:0 !important; }
.lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-card-actions{ gap:var(--lvqe-upcoming-action-gap) !important; margin-top:var(--lvqe-upcoming-actions-mt) !important; padding-top:var(--lvqe-upcoming-actions-pt) !important; }

/* Group-specific gradient hooks */
.lvtt-page .lvdc-group[data-group="committed"] .lvdc-card.is-committed-fixed,
.lvtt-page .lvdc-group[data-group="committed"] .lvdc-card.is-committed-expanded{
  min-height:var(--lvqe-committed-exp-min-h) !important;
  background:linear-gradient(180deg,
    var(--lvqe-committed-exp-c1) 0%,
    var(--lvqe-committed-exp-c2) var(--lvqe-committed-exp-s2),
    var(--lvqe-committed-exp-c3) var(--lvqe-committed-exp-s3),
    var(--lvqe-committed-exp-c4) var(--lvqe-committed-exp-s4),
    var(--lvqe-committed-exp-c5) 100%) !important;
}
.lvtt-page .lvdc-group[data-group="committed"] .lvdc-card.is-committed-collapsed{
  min-height:var(--lvqe-committed-coll-min-h) !important;
  background:linear-gradient(180deg,
    var(--lvqe-committed-coll-c1) 0%,
    var(--lvqe-committed-coll-c1) var(--lvqe-committed-coll-s2),
    var(--lvqe-committed-coll-c2) 90%,
    var(--lvqe-committed-coll-c3) var(--lvqe-committed-coll-s3)) !important;
}
.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card.is-overdue-fixed,
.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card.is-overdue-expanded{
  min-height:var(--lvqe-overdue-exp-min-h) !important;
  background:linear-gradient(180deg,
    var(--lvqe-overdue-exp-c1) 0%,
    var(--lvqe-overdue-exp-c2) var(--lvqe-overdue-exp-s2),
    var(--lvqe-overdue-exp-c3) var(--lvqe-overdue-exp-s3),
    var(--lvqe-overdue-exp-c4) var(--lvqe-overdue-exp-s4),
    var(--lvqe-overdue-exp-c5) 100%) !important;
}
.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card.is-overdue-collapsed{
  min-height:var(--lvqe-overdue-coll-min-h) !important;
  background:linear-gradient(180deg,
    var(--lvqe-overdue-coll-c1) 0%,
    var(--lvqe-overdue-coll-c1) var(--lvqe-overdue-coll-s2),
    var(--lvqe-overdue-coll-c2) 82%,
    var(--lvqe-overdue-coll-c3) var(--lvqe-overdue-coll-s3)) !important;
}
.lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-card{
  background:linear-gradient(180deg,
    var(--lvqe-upcoming-c1) 0%,
    var(--lvqe-upcoming-c2) var(--lvqe-upcoming-s2),
    var(--lvqe-upcoming-c3) 86%,
    var(--lvqe-upcoming-c4) var(--lvqe-upcoming-s3)) !important;
}
.lvtt-page .lvdc-empty{ background:var(--lvqe-waiting-empty-bg) !important; }

/* editor UI */
.lvqe-launcher{
  position:fixed;
  right:22px;
  bottom:22px;
  z-index:9999;
  height:44px;
  padding:0 16px;
  border-radius:999px;
  border:1px solid #E6E6E6;
  background:#171717;
  color:#fff;
  font-size:12px;
  font-weight:750;
  letter-spacing:.01em;
  box-shadow:0 14px 38px rgba(0,0,0,.12);
  cursor:pointer;
}
.lvqe-panel{
  position:fixed;
  right:18px;
  top:18px;
  bottom:18px;
  width:410px;
  z-index:10000;
  border:1px solid #E6E6E6;
  border-radius:24px;
  background:rgba(255,255,255,.97);
  backdrop-filter:blur(18px);
  box-shadow:0 24px 70px rgba(0,0,0,.14);
  display:none;
  overflow:hidden;
  color:#171717;
}
.lvqe-panel.is-open{ display:flex; flex-direction:column; }
.lvqe-head{ padding:18px 18px 14px; border-bottom:1px solid #EEEEEE; display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
.lvqe-title{ font-size:16px; line-height:20px; font-weight:760; }
.lvqe-sub{ margin-top:4px; font-size:11px; line-height:16px; color:#999; }
.lvqe-close{ width:32px; height:32px; border-radius:999px; border:1px solid #E8E8E8; background:#fff; cursor:pointer; font-size:16px; }
.lvqe-body{ padding:14px 14px 18px; overflow:auto; scrollbar-width:none; }
.lvqe-body::-webkit-scrollbar{ display:none; }
.lvqe-section{ border:1px solid #EDEDED; background:#FFFFFF; border-radius:18px; padding:13px; margin-bottom:12px; }
.lvqe-section summary{ list-style:none; cursor:pointer; font-size:12px; line-height:17px; font-weight:760; }
.lvqe-section summary::-webkit-details-marker{ display:none; }
.lvqe-grid{ display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:12px; }
.lvqe-field{ min-width:0; }
.lvqe-label{ display:flex; align-items:center; justify-content:space-between; gap:8px; font-size:10.5px; line-height:14px; color:#888; margin-bottom:6px; }
.lvqe-value{ color:#555; font-weight:650; font-variant-numeric:tabular-nums; }
.lvqe-field input[type="range"]{ width:100%; accent-color:var(--lvqe-editor-accent); }
.lvqe-field input[type="color"]{ width:100%; height:34px; padding:3px; border:1px solid #E8E8E8; border-radius:12px; background:#fff; }
.lvqe-actions{ display:grid; grid-template-columns:1fr 1fr; gap:10px; padding:12px 14px 14px; border-top:1px solid #EEEEEE; }
.lvqe-actions button{ height:38px; border-radius:14px; border:1px solid #E6E6E6; background:#fff; color:#333; font-size:12px; font-weight:720; cursor:pointer; }
.lvqe-actions .lvqe-reset{ background:#171717; color:#fff; border-color:#171717; }
@media (max-width:800px){ .lvqe-panel{ left:10px; right:10px; width:auto; } .lvqe-launcher{ right:14px; bottom:14px; } }


/* ======================================================================
   v249 · user supplied queue-editor variable lock
   ====================================================================== */
:root{
  --lvqe-queue-gap: 24px;
  --lvqe-group-gap: 14px;
  --lvqe-group-mb: 22px;
  --lvqe-grid-gap: 18px;
  --lvqe-section-title-size: 16px;
  --lvqe-section-desc-size: 12px;
  --lvqe-count-size-box: 26px;
  --lvqe-count-size: 11px;
  --lvqe-card-radius: 30px;
  --lvqe-card-border-width: 1px;
  --lvqe-card-border: #ECECEC;
  --lvqe-card-hover-border: #E2E8DA;
  --lvqe-card-shadow-y: 8px;
  --lvqe-card-shadow-blur: 22px;
  --lvqe-card-shadow-alpha: 0.018;
  --lvqe-type-chip-radius: 999px;
  --lvqe-chip-radius: 999px;
  --lvqe-action-radius: 999px;
  --lvqe-title-size: 14.5px;
  --lvqe-title-line: 20px;
  --lvqe-title-weight: 700;
  --lvqe-meta-size: 10.8px;
  --lvqe-meta-line: 15px;
  --lvqe-meta-color: #9B9B9B;
  --lvqe-contract-size: 10.2px;
  --lvqe-contract-line: 15.5px;
  --lvqe-contract-key-size: 10px;
  --lvqe-contract-key-color: #A3A3A3;
  --lvqe-committed-pad-top: 26px;
  --lvqe-committed-pad-x: 30px;
  --lvqe-committed-pad-bottom: 24px;
  --lvqe-committed-exp-min-h: 340px;
  --lvqe-committed-coll-min-h: 96px;
  --lvqe-committed-avatar-size: 37px;
  --lvqe-committed-avatar-font: 12.5px;
  --lvqe-committed-top-gap: 19px;
  --lvqe-committed-headline-mt: 0px;
  --lvqe-committed-headline-pt: 0px;
  --lvqe-committed-headline-gap: 9px;
  --lvqe-committed-headline-border: 0;
  --lvqe-committed-status-mt: 2px;
  --lvqe-committed-status-gap: 6px;
  --lvqe-committed-ms-mt: 0px;
  --lvqe-committed-ms-gap: 6px;
  --lvqe-committed-actions-mt: 0px;
  --lvqe-committed-actions-pt: 7px;
  --lvqe-committed-action-gap: 8px;
  --lvqe-committed-contract-pt: 15px;
  --lvqe-committed-contract-pb: 13px;
  --lvqe-committed-contract-gap: 8px;
  --lvqe-committed-contract-key-width: 70px;
  --lvqe-committed-exp-c1: #FFFFFF;
  --lvqe-committed-exp-c2: #FFFFFF;
  --lvqe-committed-exp-c3: #FDFEFC;
  --lvqe-committed-exp-c4: #FBFCF8;
  --lvqe-committed-exp-c5: #FAFCF5;
  --lvqe-committed-exp-s2: 34%;
  --lvqe-committed-exp-s3: 56%;
  --lvqe-committed-exp-s4: 78%;
  --lvqe-committed-coll-c1: #FFFFFF;
  --lvqe-committed-coll-c2: #FEFEFE;
  --lvqe-committed-coll-c3: #FAFAFA;
  --lvqe-committed-coll-s2: 78%;
  --lvqe-committed-coll-s3: 100%;
  --lvqe-overdue-pad-top: 26px;
  --lvqe-overdue-pad-x: 30px;
  --lvqe-overdue-pad-bottom: 24px;
  --lvqe-overdue-exp-min-h: 340px;
  --lvqe-overdue-coll-min-h: 96px;
  --lvqe-overdue-avatar-size: 37px;
  --lvqe-overdue-avatar-font: 12.5px;
  --lvqe-overdue-top-gap: 19px;
  --lvqe-overdue-headline-mt: 0px;
  --lvqe-overdue-headline-pt: 0px;
  --lvqe-overdue-headline-gap: 8px;
  --lvqe-overdue-headline-border: 0;
  --lvqe-overdue-status-mt: 2px;
  --lvqe-overdue-status-gap: 7px;
  --lvqe-overdue-ms-mt: 0px;
  --lvqe-overdue-ms-gap: 8px;
  --lvqe-overdue-actions-mt: 0px;
  --lvqe-overdue-actions-pt: 7px;
  --lvqe-overdue-action-gap: 8px;
  --lvqe-overdue-contract-pt: 15px;
  --lvqe-overdue-contract-pb: 13px;
  --lvqe-overdue-contract-gap: 8px;
  --lvqe-overdue-contract-key-width: 70px;
  --lvqe-overdue-exp-c1: #FFFFFF;
  --lvqe-overdue-exp-c2: #fdfcfc;
  --lvqe-overdue-exp-c3: #fffdfa;
  --lvqe-overdue-exp-c4: #fffcfa;
  --lvqe-overdue-exp-c5: #fff9f5;
  --lvqe-overdue-exp-s2: 34%;
  --lvqe-overdue-exp-s3: 57%;
  --lvqe-overdue-exp-s4: 79%;
  --lvqe-overdue-coll-c1: #FFFFFF;
  --lvqe-overdue-coll-c2: #fcfcfc;
  --lvqe-overdue-coll-c3: #fafafa;
  --lvqe-overdue-coll-s2: 70%;
  --lvqe-overdue-coll-s3: 100%;
  --lvqe-upcoming-min-h: 410px;
  --lvqe-upcoming-pad-top: 27px;
  --lvqe-upcoming-pad-x: 28px;
  --lvqe-upcoming-pad-bottom: 24px;
  --lvqe-upcoming-avatar-size: 34px;
  --lvqe-upcoming-avatar-font: 11.5px;
  --lvqe-upcoming-top-gap: 12px;
  --lvqe-upcoming-headline-mt: 6px;
  --lvqe-upcoming-headline-pt: 6px;
  --lvqe-upcoming-headline-gap: 9px;
  --lvqe-upcoming-headline-border: 0;
  --lvqe-upcoming-status-mt: 6px;
  --lvqe-upcoming-status-gap: 6px;
  --lvqe-upcoming-ms-mt: 0px;
  --lvqe-upcoming-ms-gap: 6px;
  --lvqe-upcoming-actions-mt: 0px;
  --lvqe-upcoming-actions-pt: 9px;
  --lvqe-upcoming-action-gap: 9px;
  --lvqe-upcoming-contract-pt: 16px;
  --lvqe-upcoming-contract-pb: 15px;
  --lvqe-upcoming-contract-gap: 7px;
  --lvqe-upcoming-contract-key-width: 68px;
  --lvqe-upcoming-c1: #FFFFFF;
  --lvqe-upcoming-c2: #FFFFFF;
  --lvqe-upcoming-c3: #FBFCF8;
  --lvqe-upcoming-c4: #FAFCF5;
  --lvqe-upcoming-s2: 62%;
  --lvqe-upcoming-s3: 100%;
  --lvqe-chip-h: 21px;
  --lvqe-chip-pad-x: 9px;
  --lvqe-chip-size: 8.8px;
  --lvqe-chip-weight: 650;
  --lvqe-action-h: 30px;
  --lvqe-action-pad-x: 14px;
  --lvqe-action-size: 10px;
}


/* ==== lovix-tasks-v250-upcoming-3col-lock.css ==== */
/* v250 · lock Upcoming back to the original 3-card row layout
   Based on v249. Only fixes the Upcoming grid/card structure that drifted into 2 columns. */

.lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-grid{
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:var(--lvqe-grid-gap) !important;
  align-items:start !important;
}

.lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-card{
  width:100% !important;
  min-width:0 !important;
  box-sizing:border-box !important;
}

.lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-card-top,
.lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-core,
.lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-contract-row,
.lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-contract-row .v{
  min-width:0 !important;
}

.lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-next,
.lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-context,
.lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-contract-row .v{
  overflow:hidden !important;
  text-overflow:ellipsis !important;
}

/* Keep the 3-card layout on normal desktop widths; only collapse on truly narrow screens. */
@media (max-width: 980px){
  .lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-grid{
    grid-template-columns:1fr !important;
  }
}


/* ==== lovix-tasks-v251-hover-soften.css ==== */
/* v251 · soften card hover deepening
   The overdue expanded/collapsed cards were getting visually heavier on hover.
   This file keeps hover feedback but makes it almost neutral. */

.lvtt-page .lvdc-card:hover{
  border-color:#E7EADF !important;
  box-shadow:0 9px 22px rgba(0,0,0,.016) !important;
}

/* Overdue expanded/fixed: hover now uses the same wash as the resting state. */
.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card.is-overdue-fixed:hover,
.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card.is-overdue-expanded:hover{
  background:linear-gradient(180deg,
    var(--lvqe-overdue-exp-c1) 0%,
    var(--lvqe-overdue-exp-c2) var(--lvqe-overdue-exp-s2),
    var(--lvqe-overdue-exp-c3) var(--lvqe-overdue-exp-s3),
    var(--lvqe-overdue-exp-c4) var(--lvqe-overdue-exp-s4),
    var(--lvqe-overdue-exp-c5) 100%) !important;
  border-color:#E7EADF !important;
  box-shadow:0 9px 22px rgba(0,0,0,.016) !important;
}

/* Overdue collapsed: no darker grey hover; only a very light border response. */
.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card.is-overdue-collapsed:hover{
  background:linear-gradient(180deg,
    var(--lvqe-overdue-coll-c1) 0%,
    var(--lvqe-overdue-coll-c1) var(--lvqe-overdue-coll-s2),
    var(--lvqe-overdue-coll-c2) 82%,
    var(--lvqe-overdue-coll-c3) var(--lvqe-overdue-coll-s3)) !important;
  border-color:#E7EADF !important;
  box-shadow:0 7px 18px rgba(0,0,0,.014) !important;
}

/* Keep committed hover equally soft so the two major queue blocks feel consistent. */
.lvtt-page .lvdc-group[data-group="committed"] .lvdc-card.is-committed-fixed:hover,
.lvtt-page .lvdc-group[data-group="committed"] .lvdc-card.is-committed-expanded:hover{
  background:linear-gradient(180deg,
    var(--lvqe-committed-exp-c1) 0%,
    var(--lvqe-committed-exp-c2) var(--lvqe-committed-exp-s2),
    var(--lvqe-committed-exp-c3) var(--lvqe-committed-exp-s3),
    var(--lvqe-committed-exp-c4) var(--lvqe-committed-exp-s4),
    var(--lvqe-committed-exp-c5) 100%) !important;
  border-color:#E7EADF !important;
  box-shadow:0 9px 22px rgba(0,0,0,.016) !important;
}
.lvtt-page .lvdc-group[data-group="committed"] .lvdc-card.is-committed-collapsed:hover{
  background:linear-gradient(180deg,
    var(--lvqe-committed-coll-c1) 0%,
    var(--lvqe-committed-coll-c1) var(--lvqe-committed-coll-s2),
    var(--lvqe-committed-coll-c2) 90%,
    var(--lvqe-committed-coll-c3) var(--lvqe-committed-coll-s3)) !important;
  border-color:#E7EADF !important;
  box-shadow:0 7px 18px rgba(0,0,0,.014) !important;
}

/* Upcoming also gets a very subtle hover so the whole queue is visually calmer. */
.lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-card:hover{
  background:linear-gradient(180deg,
    var(--lvqe-upcoming-c1) 0%,
    var(--lvqe-upcoming-c2) var(--lvqe-upcoming-s2),
    var(--lvqe-upcoming-c3) 86%,
    var(--lvqe-upcoming-c4) var(--lvqe-upcoming-s3)) !important;
  border-color:#E7EADF !important;
  box-shadow:0 8px 20px rgba(0,0,0,.014) !important;
}


/* ==== lovix-tasks-v254-upcoming-sidebar-responsive.css ==== */
/* v254 · Upcoming responsive by sidebar state
   - Sidebar collapsed / enough width: 3 cards per row.
   - Sidebar expanded / narrower content: 2 cards per row.
   - Does not change the card visual tuning, only the grid column count. */

.lvtt-page .lvdc-group[data-group="upcoming"]{
  container-type:inline-size;
  container-name:lvxUpcomingQueue;
}

.lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-grid{
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:var(--lvqe-grid-gap) !important;
  align-items:start !important;
}

/* JS detection: side nav expanded -> force two cards */
html.lvx-sidebar-expanded .lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-grid,
body.lvx-sidebar-expanded .lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-grid{
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
}

/* JS detection: side nav collapsed -> restore current three cards */
html.lvx-sidebar-collapsed .lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-grid,
body.lvx-sidebar-collapsed .lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-grid{
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
}

/* Fallback: if content area itself becomes narrow, switch to 2 even if sidebar class is unavailable. */
@container lvxUpcomingQueue (max-width: 1120px){
  .lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-grid{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
}

/* Very narrow screens still use one card; this keeps the page from squeezing. */
@media (max-width: 980px){
  html.lvx-sidebar-expanded .lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-grid,
  html.lvx-sidebar-collapsed .lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-grid,
  body.lvx-sidebar-expanded .lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-grid,
  body.lvx-sidebar-collapsed .lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-grid,
  .lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-grid{
    grid-template-columns:1fr !important;
  }
}


/* ==== lovix-tasks-v300-user-lvqe-config.css ==== */
/* ======================================================================
   Lovix v300 · Task page LVQE user config
   Based on user's provided :root values. Overrides queue/editor variables only.
   ====================================================================== */
:root{
  --lvqe-queue-gap: 24px;
  --lvqe-group-gap: 14px;
  --lvqe-group-mb: 22px;
  --lvqe-grid-gap: 18px;
  --lvqe-section-title-size: 16px;
  --lvqe-section-desc-size: 12px;
  --lvqe-count-size-box: 26px;
  --lvqe-count-size: 11px;
  --lvqe-card-radius: 30px;
  --lvqe-card-border-width: 1px;
  --lvqe-card-border: #ECECEC;
  --lvqe-card-hover-border: #E2E8DA;
  --lvqe-card-shadow-y: 8px;
  --lvqe-card-shadow-blur: 22px;
  --lvqe-card-shadow-alpha: 0.018;
  --lvqe-type-chip-radius: 999px;
  --lvqe-chip-radius: 999px;
  --lvqe-action-radius: 999px;
  --lvqe-title-size: 14.5px;
  --lvqe-title-line: 20px;
  --lvqe-title-weight: 700;
  --lvqe-meta-size: 10.8px;
  --lvqe-meta-line: 15px;
  --lvqe-meta-color: #9B9B9B;
  --lvqe-contract-size: 10.2px;
  --lvqe-contract-line: 15.5px;
  --lvqe-contract-key-size: 10px;
  --lvqe-contract-key-color: #A3A3A3;
  --lvqe-committed-pad-top: 26px;
  --lvqe-committed-pad-x: 30px;
  --lvqe-committed-pad-bottom: 24px;
  --lvqe-committed-exp-min-h: 340px;
  --lvqe-committed-coll-min-h: 96px;
  --lvqe-committed-avatar-size: 37px;
  --lvqe-committed-avatar-font: 12.5px;
  --lvqe-committed-top-gap: 19px;
  --lvqe-committed-headline-mt: 0px;
  --lvqe-committed-headline-pt: 0px;
  --lvqe-committed-headline-gap: 9px;
  --lvqe-committed-headline-border: 0;
  --lvqe-committed-status-mt: 2px;
  --lvqe-committed-status-gap: 6px;
  --lvqe-committed-ms-mt: 0px;
  --lvqe-committed-ms-gap: 6px;
  --lvqe-committed-actions-mt: 0px;
  --lvqe-committed-actions-pt: 7px;
  --lvqe-committed-action-gap: 8px;
  --lvqe-committed-contract-pt: 15px;
  --lvqe-committed-contract-pb: 13px;
  --lvqe-committed-contract-gap: 8px;
  --lvqe-committed-contract-key-width: 70px;
  --lvqe-committed-exp-c1: #FFFFFF;
  --lvqe-committed-exp-c2: #FFFFFF;
  --lvqe-committed-exp-c3: #FDFEFC;
  --lvqe-committed-exp-c4: #FBFCF8;
  --lvqe-committed-exp-c5: #FAFCF5;
  --lvqe-committed-exp-s2: 34%;
  --lvqe-committed-exp-s3: 56%;
  --lvqe-committed-exp-s4: 78%;
  --lvqe-committed-coll-c1: #FFFFFF;
  --lvqe-committed-coll-c2: #FEFEFE;
  --lvqe-committed-coll-c3: #FAFAFA;
  --lvqe-committed-coll-s2: 78%;
  --lvqe-committed-coll-s3: 100%;
  --lvqe-overdue-pad-top: 26px;
  --lvqe-overdue-pad-x: 30px;
  --lvqe-overdue-pad-bottom: 24px;
  --lvqe-overdue-exp-min-h: 340px;
  --lvqe-overdue-coll-min-h: 96px;
  --lvqe-overdue-avatar-size: 37px;
  --lvqe-overdue-avatar-font: 12.5px;
  --lvqe-overdue-top-gap: 19px;
  --lvqe-overdue-headline-mt: 0px;
  --lvqe-overdue-headline-pt: 0px;
  --lvqe-overdue-headline-gap: 8px;
  --lvqe-overdue-headline-border: 0;
  --lvqe-overdue-status-mt: 2px;
  --lvqe-overdue-status-gap: 7px;
  --lvqe-overdue-ms-mt: 0px;
  --lvqe-overdue-ms-gap: 8px;
  --lvqe-overdue-actions-mt: 0px;
  --lvqe-overdue-actions-pt: 7px;
  --lvqe-overdue-action-gap: 8px;
  --lvqe-overdue-contract-pt: 15px;
  --lvqe-overdue-contract-pb: 13px;
  --lvqe-overdue-contract-gap: 8px;
  --lvqe-overdue-contract-key-width: 70px;
  --lvqe-overdue-exp-c1: #FFFFFF;
  --lvqe-overdue-exp-c2: #fdfcfc;
  --lvqe-overdue-exp-c3: #fffdfa;
  --lvqe-overdue-exp-c4: #fffcfa;
  --lvqe-overdue-exp-c5: #fff9f5;
  --lvqe-overdue-exp-s2: 34%;
  --lvqe-overdue-exp-s3: 57%;
  --lvqe-overdue-exp-s4: 79%;
  --lvqe-overdue-coll-c1: #FFFFFF;
  --lvqe-overdue-coll-c2: #fcfcfc;
  --lvqe-overdue-coll-c3: #fafafa;
  --lvqe-overdue-coll-s2: 70%;
  --lvqe-overdue-coll-s3: 100%;
  --lvqe-upcoming-min-h: 400px;
  --lvqe-upcoming-pad-top: 25px;
  --lvqe-upcoming-pad-x: 28px;
  --lvqe-upcoming-pad-bottom: 19px;
  --lvqe-upcoming-avatar-size: 34px;
  --lvqe-upcoming-avatar-font: 11.5px;
  --lvqe-upcoming-top-gap: 12px;
  --lvqe-upcoming-headline-mt: 5px;
  --lvqe-upcoming-headline-pt: 3px;
  --lvqe-upcoming-headline-gap: 9px;
  --lvqe-upcoming-headline-border: 0;
  --lvqe-upcoming-status-mt: 4px;
  --lvqe-upcoming-status-gap: 5px;
  --lvqe-upcoming-ms-mt: 0px;
  --lvqe-upcoming-ms-gap: 7px;
  --lvqe-upcoming-actions-mt: 0px;
  --lvqe-upcoming-actions-pt: 7px;
  --lvqe-upcoming-action-gap: 10px;
  --lvqe-upcoming-contract-pt: 15px;
  --lvqe-upcoming-contract-pb: 12px;
  --lvqe-upcoming-contract-gap: 7px;
  --lvqe-upcoming-contract-key-width: 68px;
  --lvqe-upcoming-c1: #FFFFFF;
  --lvqe-upcoming-c2: #FFFFFF;
  --lvqe-upcoming-c3: #FBFCF8;
  --lvqe-upcoming-c4: #FAFCF5;
  --lvqe-upcoming-s2: 62%;
  --lvqe-upcoming-s3: 100%;
  --lvqe-chip-h: 21px;
  --lvqe-chip-pad-x: 9px;
  --lvqe-chip-size: 8.8px;
  --lvqe-chip-weight: 650;
  --lvqe-action-h: 30px;
  --lvqe-action-pad-x: 14px;
  --lvqe-action-size: 10px;
}


/* ==== lovix-tasks-v308-modal-single-system.css ==== */
/* Lovix v308 · one modal control system, no native/legacy date popups */
.lvdc-modal .lvdc-form-grid{
  gap:16px 18px !important;
}
.lvdc-modal .lvdc-field{
  gap:8px !important;
}
.lvdc-modal .lvdc-label{
  font-size:13px !important;
  line-height:18px !important;
  font-weight:700 !important;
  color:#8B8B8B !important;
}
.lvdc-modal .lvdc-input,
.lvdc-modal .lvdc-textarea,
.lvdc-modal .lvdc-field select,
.lvdc-v308-control{
  width:100% !important;
  box-sizing:border-box !important;
  border:1px solid #E4E4E4 !important;
  border-radius:26px !important;
  background:#fff !important;
  color:#171717 !important;
  font-size:18px !important;
  line-height:24px !important;
  font-weight:560 !important;
  outline:none !important;
  box-shadow:none !important;
}
.lvdc-modal .lvdc-input,
.lvdc-modal .lvdc-field select,
.lvdc-v308-control{
  height:56px !important;
  padding:0 22px !important;
}
.lvdc-modal .lvdc-textarea{
  min-height:118px !important;
  padding:18px 22px !important;
}
.lvdc-v308-combo,
.lvdc-v308-picker-shell{
  position:relative;
  width:100%;
}
.lvdc-v308-combo input.lvdc-v308-control{
  padding-right:54px !important;
}
.lvdc-v308-arrow{
  position:absolute;
  right:18px;
  top:50%;
  transform:translateY(-50%);
  width:18px;
  height:18px;
  pointer-events:none;
  color:#171717;
}
.lvdc-v308-arrow:before{
  content:"";
  position:absolute;
  left:4px;
  top:5px;
  width:8px;
  height:8px;
  border-right:2px solid currentColor;
  border-bottom:2px solid currentColor;
  transform:rotate(45deg);
}
.lvdc-v308-combo.is-open .lvdc-v308-arrow:before{
  top:8px;
  transform:rotate(-135deg);
}
.lvdc-v308-menu{
  position:absolute;
  z-index:9805;
  left:0;
  right:0;
  top:calc(100% + 8px);
  display:none;
  padding:8px;
  border:1px solid #E9E4DA;
  border-radius:20px;
  background:#fff;
  box-shadow:0 18px 45px rgba(0,0,0,.12);
}
.lvdc-v308-combo.is-open .lvdc-v308-menu{ display:block; }
.lvdc-v308-option{
  width:100%;
  height:40px;
  display:flex;
  align-items:center;
  border:0;
  border-radius:14px;
  background:transparent;
  padding:0 12px;
  font-size:14px;
  line-height:18px;
  color:#555;
  font-weight:650;
  text-align:left;
  cursor:pointer;
}
.lvdc-v308-option:hover,
.lvdc-v308-option.is-active{
  background:#171717;
  color:#fff;
}
.lvdc-v308-picker-shell .lvdc-v308-control{
  padding-right:56px !important;
}
.lvdc-v308-picker-icon{
  position:absolute;
  right:20px;
  top:50%;
  width:22px;
  height:22px;
  transform:translateY(-50%);
  color:#777;
  pointer-events:none;
}
.lvdc-v308-picker-icon svg{
  display:block;
  width:22px;
  height:22px;
}
.lvdc-v308-slot{
  display:grid;
  grid-template-columns:minmax(0,1fr) 28px minmax(0,1fr);
  gap:12px;
  align-items:center;
}
.lvdc-v308-dash{
  color:#9B9B9B;
  text-align:center;
  font-size:18px;
  font-weight:600;
}
.lvdc-v308-help{
  margin-top:6px;
  font-size:12px;
  line-height:18px;
  color:#9B9B9B;
}
.lvdc-v308-estimate{
  display:grid;
  gap:10px;
}
.lvdc-v308-estimate-row{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}
.lvdc-v308-pill{
  height:30px;
  padding:0 13px;
  border-radius:999px;
  border:1px solid #E7E7E7;
  background:#fff;
  color:#666;
  font-size:12px;
  line-height:16px;
  font-weight:700;
  cursor:pointer;
}
.lvdc-v308-pill.is-active{
  border-color:#D5E6A7;
  background:#FBFCF5;
  color:#566617;
}
.lvdc-v308-important{
  display:flex;
  align-items:center;
  justify-content:space-between;
  height:56px;
  padding:0 18px 0 22px;
  border:1px solid #E4E4E4;
  border-radius:26px;
  background:#fff;
  font-size:16px;
  font-weight:680;
  color:#555;
  cursor:pointer;
}
.lvdc-v308-important.is-on{
  border-color:#D5E6A7;
  background:#FBFCF5;
  color:#566617;
}
.lvdc-v308-pop{
  position:fixed;
  z-index:10050;
  width:360px;
  max-width:calc(100vw - 28px);
  display:none;
  padding:16px;
  border:1px solid #E9E4DA;
  border-radius:24px;
  background:#fff;
  box-shadow:0 26px 80px rgba(0,0,0,.14);
}
.lvdc-v308-pop.is-open{ display:block; }
.lvdc-v308-pop-head{
  display:grid;
  grid-template-columns:38px minmax(0,1fr) 38px;
  gap:10px;
  align-items:center;
  margin-bottom:14px;
}
.lvdc-v308-pop-title{
  height:38px;
  display:flex;
  align-items:center;
  justify-content:center;
  border:1px solid #EDEDED;
  border-radius:16px;
  font-size:16px;
  font-weight:780;
  color:#171717;
}
.lvdc-v308-nav{
  height:38px;
  border:1px solid #EDEDED;
  border-radius:999px;
  background:#fff;
  font-size:22px;
  color:#555;
  cursor:pointer;
}
.lvdc-v308-week,
.lvdc-v308-date-grid{
  display:grid;
  grid-template-columns:repeat(7,1fr);
  gap:8px;
}
.lvdc-v308-week span{
  height:26px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:13px;
  font-weight:700;
  color:#A0A0A0;
}
.lvdc-v308-day{
  height:34px;
  border:0;
  border-radius:12px;
  background:transparent;
  color:#333;
  font-size:14px;
  font-weight:700;
  cursor:pointer;
}
.lvdc-v308-day.is-muted{ color:#B8B8B8; }
.lvdc-v308-day.is-selected{
  background:#171717;
  color:#fff;
}
.lvdc-v308-foot{
  display:flex;
  justify-content:space-between;
  gap:10px;
  margin-top:14px;
  padding-top:12px;
  border-top:1px solid #F0F0F0;
}
.lvdc-v308-foot button{
  height:34px;
  border:0;
  border-radius:999px;
  background:transparent;
  color:#666;
  font-size:13px;
  font-weight:760;
  cursor:pointer;
}
.lvdc-v308-foot button.primary{
  min-width:62px;
  background:#171717;
  color:#fff;
}
.lvdc-v308-time-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  max-height:260px;
}
.lvdc-v308-time-col{
  max-height:250px;
  overflow:auto;
  scrollbar-width:none;
  border:1px solid #EFEFEF;
  border-radius:16px;
  padding:6px;
}
.lvdc-v308-time-col::-webkit-scrollbar{ display:none; }
.lvdc-v308-time-btn{
  width:100%;
  height:34px;
  border:0;
  border-radius:12px;
  background:transparent;
  color:#444;
  font-size:14px;
  font-weight:700;
  cursor:pointer;
}
.lvdc-v308-time-btn.is-selected{
  background:#171717;
  color:#fff;
}
.lvdc-v308-ms-mask{
  position:fixed;
  inset:0;
  z-index:10100;
  background:rgba(0,0,0,.16);
}
.lvdc-v308-ms-dialog{
  position:fixed;
  left:50%;top:50%;
  transform:translate(-50%,-50%);
  z-index:10101;
  width:min(440px,calc(100vw - 32px));
  border:1px solid #E9E4DA;
  border-radius:26px;
  background:#fff;
  box-shadow:0 26px 80px rgba(0,0,0,.16);
  padding:22px;
}
.lvdc-v308-ms-dialog h3{margin:0 0 8px;font-size:20px;line-height:26px;color:#171717;}
.lvdc-v308-ms-dialog p{margin:0 0 14px;font-size:12px;line-height:18px;color:#999;}
.lvdc-v308-ms-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:14px;}
.lvdc-v308-ms-actions button{height:38px;padding:0 16px;border-radius:999px;border:1px solid #E7E7E7;background:#fff;font-weight:760;cursor:pointer;}
.lvdc-v308-ms-actions .primary{background:#171717;color:#fff;border-color:#171717;}
/* kill all old modal picker systems if stale CSS/DOM is still present */
.lvdc-modal .lvdc-picker-wrap > .lvdc-picker-trigger,
.lvdc-modal .lvdc-v304-icon-btn,
.lvdc-modal .lvdc-v305-icon,
.lvdc-modal .lvdc-date-icon,
.lvdc-modal .lvdc-time-icon{display:none!important;}
.lvdc-picker-pop,.lvdc-v304-pop,.lvdc-v305-pop{display:none!important;visibility:hidden!important;pointer-events:none!important;}


/* ==== lovix-tasks-v309-modal-design-reset.css ==== */
/* Lovix v309 · task modal design system reset
   Goal: one visual language for add/edit task modal; one date/time picker system only. */

/* modal shell */
.lvdc-modal{
  --lvdc-form-h: 52px;
  --lvdc-form-radius: 24px;
  --lvdc-form-border: #E5E5E5;
  --lvdc-form-focus: #D7EA42;
  --lvdc-form-text: #171717;
  --lvdc-form-muted: #8E8E8E;
}
.lvdc-modal .lvdc-modal-card{
  border-radius: 32px !important;
  overflow: hidden !important;
}
.lvdc-modal .lvdc-modal-head{
  padding: 26px 32px 20px !important;
  border-bottom: 1px solid #EEEEEE !important;
}
.lvdc-modal .lvdc-modal-title{
  font-size: 26px !important;
  line-height: 32px !important;
  letter-spacing: -0.04em !important;
  font-weight: 780 !important;
}
.lvdc-modal .lvdc-modal-subtitle{
  margin-top: 7px !important;
  font-size: 13px !important;
  line-height: 20px !important;
  color: #989898 !important;
}
.lvdc-modal .lvdc-modal-body{
  padding: 24px 32px 92px !important;
}
.lvdc-modal .lvdc-modal-foot{
  min-height: 72px !important;
  padding: 14px 32px !important;
  border-top: 1px solid #EEEEEE !important;
  background: rgba(255,255,255,.96) !important;
  backdrop-filter: blur(10px) !important;
}

/* grid */
.lvdc-modal .lvdc-form-grid{
  gap: 16px 18px !important;
  align-items: start !important;
}
.lvdc-modal .lvdc-field{
  gap: 7px !important;
}
.lvdc-modal .lvdc-label{
  font-size: 12px !important;
  line-height: 16px !important;
  font-weight: 720 !important;
  color: #8C8C8C !important;
  letter-spacing: -0.01em !important;
}

/* kill visible remnants created by older select/date systems */
.lvdc-modal .lvdc-v308-hidden-select,
.lvdc-modal .lvdc-v308-hidden-select + .lvdc-custom-select,
.lvdc-modal .lvdc-v308-hidden-select ~ .lvdc-custom-select,
.lvdc-modal .lvdc-field[data-v308="1"] > select,
.lvdc-modal .lvdc-field[data-v308="1"] > .lvdc-custom-select,
.lvdc-modal .lvdc-field[data-v308="1"] > .lvdc-picker-wrap,
.lvdc-modal .lvdc-field[data-v308="1"] > .lvdc-picker-trigger,
.lvdc-modal .lvdc-field[data-v308="1"] > .lvdc-picker-pop,
.lvdc-modal .lvdc-field[data-v308="1"] > .lvdc-v304-pop,
.lvdc-modal .lvdc-field[data-v308="1"] > .lvdc-v305-pop{
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
  width: 0 !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  overflow: hidden !important;
}
.lvdc-picker-pop,
.lvdc-v304-pop,
.lvdc-v305-pop{
  display:none !important;
  visibility:hidden !important;
  pointer-events:none !important;
}

/* unified controls */
.lvdc-modal .lvdc-input,
.lvdc-modal .lvdc-textarea,
.lvdc-modal .lvdc-field select,
.lvdc-v308-control,
.lvdc-v309-control{
  width: 100% !important;
  box-sizing: border-box !important;
  border: 1px solid var(--lvdc-form-border) !important;
  border-radius: var(--lvdc-form-radius) !important;
  background: #FFFFFF !important;
  color: var(--lvdc-form-text) !important;
  font-size: 15.5px !important;
  line-height: 20px !important;
  font-weight: 560 !important;
  letter-spacing: -0.015em !important;
  outline: none !important;
  box-shadow: none !important;
}
.lvdc-modal .lvdc-input,
.lvdc-modal .lvdc-field select,
.lvdc-v308-control,
.lvdc-v309-control{
  height: var(--lvdc-form-h) !important;
  padding: 0 18px !important;
}
.lvdc-modal .lvdc-textarea{
  min-height: 112px !important;
  padding: 16px 18px !important;
  resize: vertical !important;
}
.lvdc-modal .lvdc-input:focus,
.lvdc-modal .lvdc-textarea:focus,
.lvdc-v308-control:focus,
.lvdc-v309-control:focus{
  border-color: var(--lvdc-form-focus) !important;
  box-shadow: 0 0 0 3px rgba(215,234,66,.18) !important;
}
.lvdc-modal .lvdc-input::placeholder,
.lvdc-modal .lvdc-textarea::placeholder,
.lvdc-v308-control::placeholder,
.lvdc-v309-control::placeholder{
  color: #B7B7B7 !important;
}

/* combo dropdowns: no Excel feeling */
.lvdc-v308-combo{
  position: relative !important;
}
.lvdc-v308-combo input.lvdc-v308-control{
  padding-right: 48px !important;
}
.lvdc-v308-arrow{
  right: 18px !important;
  width: 16px !important;
  height: 16px !important;
  color: #222 !important;
  opacity: .88 !important;
}
.lvdc-v308-arrow:before{
  left: 4px !important;
  top: 4px !important;
  width: 7px !important;
  height: 7px !important;
  border-right: 1.8px solid currentColor !important;
  border-bottom: 1.8px solid currentColor !important;
}
.lvdc-v308-menu{
  top: calc(100% + 8px) !important;
  padding: 8px !important;
  border: 1px solid #EBE6DD !important;
  border-radius: 18px !important;
  background: #FFFFFF !important;
  box-shadow: 0 18px 44px rgba(0,0,0,.10) !important;
}
.lvdc-v308-option{
  height: 36px !important;
  padding: 0 12px !important;
  border-radius: 12px !important;
  font-size: 13px !important;
  line-height: 18px !important;
  font-weight: 650 !important;
  color: #555 !important;
}
.lvdc-v308-option:hover,
.lvdc-v308-option.is-active{
  background: #171717 !important;
  color: #FFFFFF !important;
}

/* picker icon: small, single, restrained */
.lvdc-v308-picker-shell{
  position: relative !important;
}
.lvdc-v308-picker-shell .lvdc-v308-control{
  padding-right: 48px !important;
}
.lvdc-v308-picker-icon{
  right: 18px !important;
  width: 17px !important;
  height: 17px !important;
  color: #7A7A7A !important;
  opacity: .95 !important;
  pointer-events: none !important;
}
.lvdc-v308-picker-icon svg{
  width: 17px !important;
  height: 17px !important;
  stroke-width: 1.45px !important;
}
.lvdc-v308-picker-icon svg *{
  stroke-width: 1.55px !important;
}

/* plan slot */
.lvdc-v308-slot{
  grid-template-columns: minmax(0,1fr) 22px minmax(0,1fr) !important;
  gap: 10px !important;
  align-items: center !important;
}
.lvdc-v308-dash{
  font-size: 15px !important;
  line-height: 20px !important;
  color: #A6A6A6 !important;
  font-weight: 650 !important;
}
.lvdc-v308-help{
  margin-top: 6px !important;
  font-size: 11.5px !important;
  line-height: 17px !important;
  color: #A0A0A0 !important;
}

/* estimate */
.lvdc-v308-estimate{
  gap: 9px !important;
}
.lvdc-v308-estimate-row{
  gap: 8px !important;
}
.lvdc-v308-pill{
  height: 29px !important;
  padding: 0 13px !important;
  border-radius: 999px !important;
  border: 1px solid #E7E7E7 !important;
  background: #FFFFFF !important;
  font-size: 11.5px !important;
  font-weight: 700 !important;
}
.lvdc-v308-pill.is-active{
  border-color: #D5E6A7 !important;
  background: #FBFCF5 !important;
  color: #566617 !important;
}

/* important is a button not dropdown */
.lvdc-v308-important{
  height: var(--lvdc-form-h) !important;
  padding: 0 18px !important;
  border-radius: var(--lvdc-form-radius) !important;
  border: 1px solid var(--lvdc-form-border) !important;
  font-size: 15px !important;
  font-weight: 680 !important;
}
.lvdc-v308-important span:last-child{
  font-size: 10px !important;
  letter-spacing: .08em !important;
  color: #9A9A9A !important;
}

/* date/time popup redesign */
.lvdc-v308-pop{
  width: 330px !important;
  max-width: calc(100vw - 28px) !important;
  padding: 14px !important;
  border-radius: 22px !important;
  border: 1px solid #EBE6DD !important;
  box-shadow: 0 26px 72px rgba(0,0,0,.14) !important;
}
.lvdc-v308-pop-head{
  grid-template-columns: 34px minmax(0,1fr) 34px !important;
  gap: 8px !important;
  margin-bottom: 12px !important;
}
.lvdc-v308-pop-title{
  height: 34px !important;
  border-radius: 14px !important;
  font-size: 15px !important;
  font-weight: 760 !important;
}
.lvdc-v308-nav{
  height: 34px !important;
  font-size: 19px !important;
}
.lvdc-v308-week,
.lvdc-v308-date-grid{
  gap: 6px !important;
}
.lvdc-v308-week span{
  height: 24px !important;
  font-size: 12px !important;
}
.lvdc-v308-day{
  height: 32px !important;
  border-radius: 11px !important;
  font-size: 13px !important;
  font-weight: 700 !important;
}
.lvdc-v308-foot{
  margin-top: 12px !important;
  padding-top: 11px !important;
}
.lvdc-v308-foot button{
  height: 32px !important;
  font-size: 12px !important;
}
.lvdc-v308-time-grid{
  gap: 8px !important;
  max-height: 236px !important;
}
.lvdc-v308-time-col{
  max-height: 226px !important;
  border-radius: 15px !important;
  padding: 5px !important;
}
.lvdc-v308-time-btn{
  height: 31px !important;
  border-radius: 11px !important;
  font-size: 13px !important;
  font-weight: 700 !important;
}

/* detail milestone custom dialog */
.lvdc-v308-ms-dialog{
  border-radius: 24px !important;
}
.lvdc-v308-ms-dialog .lvdc-v308-control{
  height: 52px !important;
  font-size: 15px !important;
}


/* ==== lovix-tasks-v310-modal-polish.css ==== */
/* Lovix v310 · task modal refinement
   Scope: add/edit task modal only. Do not change Notes textarea, dashboard hero, Spark Pool. */

/* more even vertical rhythm; keep Notes untouched */
.lvdc-modal.lvdc-v309-ready{
  --lvdc-form-h: 50px;
  --lvdc-form-radius: 23px;
}
.lvdc-modal.lvdc-v309-ready .lvdc-form-grid{
  gap: 18px 18px !important;
  align-items: start !important;
}
.lvdc-modal.lvdc-v309-ready .lvdc-field{
  gap: 8px !important;
}
.lvdc-modal.lvdc-v309-ready .lvdc-label{
  font-size: 12px !important;
  line-height: 16px !important;
  font-weight: 740 !important;
  color: #8A8A8A !important;
}

/* field content should not be bold; only labels/titles carry weight */
.lvdc-modal.lvdc-v309-ready .lvdc-input,
.lvdc-modal.lvdc-v309-ready .lvdc-field select,
.lvdc-modal.lvdc-v309-ready .lvdc-v308-control,
.lvdc-modal.lvdc-v309-ready .lvdc-v309-control,
.lvdc-modal.lvdc-v309-ready .lvdc-v308-combo input.lvdc-v308-control,
.lvdc-modal.lvdc-v309-ready .lvdc-v308-picker-shell input.lvdc-v308-control{
  height: 50px !important;
  padding: 0 18px !important;
  font-size: 15px !important;
  line-height: 20px !important;
  font-weight: 420 !important;
  letter-spacing: -0.01em !important;
  color: #171717 !important;
  border-color: #E3E3E3 !important;
  border-radius: 23px !important;
  background: #FFFFFF !important;
}

/* keep textareas/notes area as-is except shared focus from previous system */
.lvdc-modal.lvdc-v309-ready .lvdc-textarea{
  font-weight: 420 !important;
}

/* dropdown arrow consistency: slim, not heavy */
.lvdc-modal.lvdc-v309-ready .lvdc-v308-arrow{
  right: 18px !important;
  width: 14px !important;
  height: 14px !important;
  opacity: .82 !important;
}
.lvdc-modal.lvdc-v309-ready .lvdc-v308-arrow:before{
  width: 6px !important;
  height: 6px !important;
  border-right-width: 1.6px !important;
  border-bottom-width: 1.6px !important;
}
.lvdc-modal.lvdc-v309-ready .lvdc-field select{
  appearance: auto !important;
}

/* icon size unified and quieter */
.lvdc-modal.lvdc-v309-ready .lvdc-v308-picker-shell .lvdc-v308-control{
  padding-right: 46px !important;
}
.lvdc-modal.lvdc-v309-ready .lvdc-v308-picker-icon{
  right: 18px !important;
  width: 16px !important;
  height: 16px !important;
  color: #777 !important;
}
.lvdc-modal.lvdc-v309-ready .lvdc-v308-picker-icon svg{
  width: 16px !important;
  height: 16px !important;
}
.lvdc-modal.lvdc-v309-ready .lvdc-v308-picker-icon svg *{
  stroke-width: 1.45px !important;
}

/* plan slot feels like two compact inputs, not huge blocks */
.lvdc-modal.lvdc-v309-ready .lvdc-v308-slot{
  grid-template-columns: minmax(0,1fr) 20px minmax(0,1fr) !important;
  gap: 10px !important;
}
.lvdc-modal.lvdc-v309-ready .lvdc-v308-dash{
  font-size: 14px !important;
  color: #A5A5A5 !important;
}
.lvdc-modal.lvdc-v309-ready .lvdc-v308-help{
  margin-top: 6px !important;
  font-size: 11.5px !important;
  line-height: 17px !important;
  color: #9E9E9E !important;
}

/* estimate quick chips retain clarity but not heavy */
.lvdc-modal.lvdc-v309-ready .lvdc-v308-pill{
  height: 28px !important;
  padding: 0 12px !important;
  font-size: 11.5px !important;
  font-weight: 620 !important;
}

/* Commit Today row and other select rows should share same rhythm */
.lvdc-modal.lvdc-v309-ready .lvdc-field:has(select[name*="commit" i]),
.lvdc-modal.lvdc-v309-ready .lvdc-field:has(select[name*="today" i]),
.lvdc-modal.lvdc-v309-ready .lvdc-field:has(input[name*="commit" i]),
.lvdc-modal.lvdc-v309-ready .lvdc-field:has(input[name*="today" i]){
  gap: 8px !important;
}

/* Important is a compact toggle button, not a full-width select-like field */
.lvdc-modal.lvdc-v309-ready .lvdc-field:has(input[name="important"]){
  align-items: flex-start !important;
}
.lvdc-modal.lvdc-v309-ready .lvdc-v308-important{
  width: auto !important;
  min-width: 150px !important;
  max-width: 190px !important;
  height: 42px !important;
  padding: 0 14px !important;
  gap: 12px !important;
  justify-content: center !important;
  border-radius: 999px !important;
  border: 1px solid #E4E4E4 !important;
  background: #FFFFFF !important;
  color: #5F5F5F !important;
  font-size: 13.5px !important;
  line-height: 18px !important;
  font-weight: 560 !important;
  box-shadow: none !important;
}
.lvdc-modal.lvdc-v309-ready .lvdc-v308-important span:first-child{
  font-weight: 560 !important;
}
.lvdc-modal.lvdc-v309-ready .lvdc-v308-important span:last-child{
  font-size: 10px !important;
  line-height: 14px !important;
  letter-spacing: .08em !important;
  color: #A0A0A0 !important;
  font-weight: 680 !important;
}
.lvdc-modal.lvdc-v309-ready .lvdc-v308-important.is-on{
  border-color: #171717 !important;
  background: #171717 !important;
  color: #FFFFFF !important;
  box-shadow: 0 8px 20px rgba(0,0,0,.08) !important;
}
.lvdc-modal.lvdc-v309-ready .lvdc-v308-important.is-on span:last-child{
  color: rgba(255,255,255,.72) !important;
}

/* dropdown menus: values are not bold */
.lvdc-modal.lvdc-v309-ready .lvdc-v308-option,
.lvdc-v308-pop .lvdc-v308-time-btn,
.lvdc-v308-pop .lvdc-v308-day{
  font-weight: 520 !important;
}
.lvdc-v308-pop .lvdc-v308-pop-title{
  font-weight: 700 !important;
}


/* ==== lovix-tasks-v311-planner-scheduler.css ==== */

/* Lovix v311 · Today Planner Scheduler
   Scope: Today Tasks only. Adds an execution scheduler instead of Excel-like manual planning. */

.lvdc-v311-mask{
  position:fixed;
  inset:0;
  z-index:9998;
  background:rgba(0,0,0,.28);
  backdrop-filter:blur(8px);
}
.lvdc-v311-modal{
  position:fixed;
  z-index:9999;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  width:min(1240px, calc(100vw - 48px));
  max-height:min(90vh, 920px);
  display:grid;
  grid-template-rows:auto auto minmax(0,1fr) auto;
  background:#fff;
  border:1px solid #E7E7E7;
  border-radius:32px;
  box-shadow:0 34px 90px rgba(0,0,0,.16);
  overflow:hidden;
  color:#171717;
}
.lvdc-v311-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:24px;
  padding:26px 30px 18px;
  border-bottom:1px solid #EEEEEE;
}
.lvdc-v311-title{
  font-size:28px;
  line-height:34px;
  font-weight:780;
  letter-spacing:-.045em;
}
.lvdc-v311-sub{
  margin-top:7px;
  font-size:13px;
  line-height:20px;
  color:#959595;
}
.lvdc-v311-close{
  width:42px;
  height:42px;
  border-radius:999px;
  border:0;
  background:#F5F5F5;
  color:#777;
  font-size:26px;
  line-height:40px;
  cursor:pointer;
}
.lvdc-v311-close:hover{ background:#ECECEC; color:#111; }

.lvdc-v311-cap{
  padding:16px 30px 18px;
  border-bottom:1px solid #EFEFEF;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:16px;
  align-items:center;
}
.lvdc-v311-capline{
  display:flex;
  align-items:baseline;
  gap:10px;
  flex-wrap:wrap;
}
.lvdc-v311-cap-title{
  font-size:15px;
  line-height:20px;
  font-weight:760;
}
.lvdc-v311-cap-meta{
  font-size:12px;
  line-height:18px;
  color:#888;
  font-weight:520;
}
.lvdc-v311-track{
  height:8px;
  border-radius:999px;
  background:#F1F1F1;
  overflow:hidden;
  margin-top:10px;
}
.lvdc-v311-fill{
  height:100%;
  width:0%;
  border-radius:999px;
  background:#D5E642;
  transition:width .18s ease;
}
.lvdc-v311-cap.is-warn .lvdc-v311-fill{ background:#F0D75A; }
.lvdc-v311-cap.is-danger .lvdc-v311-fill{ background:#EE8E55; }
.lvdc-v311-tools{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.lvdc-v311-tool{
  height:34px;
  padding:0 13px;
  border-radius:999px;
  border:1px solid #E5E5E5;
  background:#fff;
  color:#555;
  font-size:12px;
  line-height:16px;
  font-weight:650;
  cursor:pointer;
}
.lvdc-v311-tool:hover{ border-color:#D9E89C; background:#FBFCF5; color:#536315; }
.lvdc-v311-tool.primary{ background:#171717; border-color:#171717; color:#fff; }
.lvdc-v311-time-setting{
  height:34px;
  min-width:92px;
  padding:0 12px;
  border:1px solid #E5E5E5;
  border-radius:999px;
  background:#fff;
  font-size:12px;
  font-weight:650;
  outline:none;
}
.lvdc-v311-time-setting:focus{
  border-color:#D7EA42;
  box-shadow:0 0 0 3px rgba(215,234,66,.18);
}
.lvdc-v311-main{
  min-height:0;
  padding:20px 30px 22px;
  display:grid;
  grid-template-columns:minmax(360px, 1fr) minmax(360px, .9fr);
  gap:20px;
  overflow:auto;
}
.lvdc-v311-panel{
  min-height:0;
  border:1px solid #EBEBEB;
  border-radius:26px;
  background:#fff;
  overflow:hidden;
}
.lvdc-v311-panel-head{
  height:58px;
  padding:0 18px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  border-bottom:1px solid #EFEFEF;
}
.lvdc-v311-panel-title{
  font-size:16px;
  line-height:20px;
  font-weight:760;
  letter-spacing:-.02em;
}
.lvdc-v311-panel-title span{
  margin-left:6px;
  font-size:11px;
  color:#9B9B9B;
  font-weight:700;
}
.lvdc-v311-mini{
  font-size:11px;
  line-height:16px;
  color:#8B8B8B;
  font-weight:600;
}
.lvdc-v311-list,
.lvdc-v311-timeline{
  padding:12px;
  display:grid;
  gap:10px;
}
.lvdc-v311-task{
  display:grid;
  grid-template-columns:24px minmax(0,1fr) auto;
  gap:12px;
  align-items:center;
  min-height:72px;
  padding:12px;
  border:1px solid #EDEDED;
  border-radius:22px;
  background:#fff;
  transition:border-color .16s ease, background .16s ease, box-shadow .16s ease;
}
.lvdc-v311-task:hover{
  border-color:#E1E9BE;
  background:#FEFFF9;
}
.lvdc-v311-task.is-selected{
  border-color:#D9E9A4;
  background:linear-gradient(180deg,#FFFFFF 0%,#FCFEF4 100%);
}
.lvdc-v311-task input[type="checkbox"]{
  width:16px;
  height:16px;
  accent-color:#171717;
}
.lvdc-v311-task-title{
  font-size:13.5px;
  line-height:18px;
  font-weight:720;
  letter-spacing:-.02em;
  color:#171717;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.lvdc-v311-task-meta{
  margin-top:4px;
  font-size:11px;
  line-height:15px;
  color:#969696;
  font-weight:520;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.lvdc-v311-task-side{
  display:grid;
  justify-items:end;
  gap:7px;
}
.lvdc-v311-minutes{
  width:62px;
  height:32px;
  border:1px solid #E4E4E4;
  border-radius:999px;
  text-align:center;
  font-size:12px;
  font-weight:650;
  outline:none;
}
.lvdc-v311-minutes:focus{
  border-color:#D7EA42;
  box-shadow:0 0 0 3px rgba(215,234,66,.18);
}
.lvdc-v311-slot-label{
  min-width:116px;
  height:30px;
  padding:0 10px;
  border:1px solid #E8E8E8;
  border-radius:999px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:11px;
  font-weight:650;
  color:#555;
  background:#fff;
}
.lvdc-v311-empty{
  min-height:180px;
  border:1px dashed #E5E5E5;
  border-radius:22px;
  display:grid;
  place-items:center;
  color:#A0A0A0;
  font-size:13px;
  line-height:20px;
  text-align:center;
  padding:20px;
}
.lvdc-v311-lineitem{
  display:grid;
  grid-template-columns:34px minmax(0,1fr);
  gap:12px;
  position:relative;
}
.lvdc-v311-lineitem:before{
  content:"";
  position:absolute;
  left:16px;
  top:42px;
  bottom:-12px;
  width:1px;
  background:#ECECEC;
}
.lvdc-v311-lineitem:last-child:before{ display:none; }
.lvdc-v311-index{
  width:34px;
  height:34px;
  border-radius:999px;
  display:grid;
  place-items:center;
  background:#F7F7F7;
  border:1px solid #ECECEC;
  font-size:12px;
  font-weight:750;
  color:#777;
}
.lvdc-v311-linecard{
  border:1px solid #EDEDED;
  border-radius:22px;
  background:#fff;
  padding:12px;
}
.lvdc-v311-line-title{
  font-size:13.5px;
  line-height:18px;
  font-weight:720;
  letter-spacing:-.02em;
}
.lvdc-v311-line-meta{
  margin-top:4px;
  font-size:11px;
  line-height:15px;
  color:#969696;
}
.lvdc-v311-time-row{
  margin-top:10px;
  display:grid;
  grid-template-columns:minmax(0,1fr) 16px minmax(0,1fr) auto;
  gap:8px;
  align-items:center;
}
.lvdc-v311-timebox{
  height:34px;
  border:1px solid #E5E5E5;
  border-radius:999px;
  padding:0 11px;
  text-align:center;
  font-size:12px;
  font-weight:650;
  outline:none;
}
.lvdc-v311-timebox:focus{
  border-color:#D7EA42;
  box-shadow:0 0 0 3px rgba(215,234,66,.16);
}
.lvdc-v311-duration{
  height:30px;
  padding:0 9px;
  display:flex;
  align-items:center;
  border-radius:999px;
  background:#F7F7F7;
  color:#666;
  font-size:11px;
  font-weight:700;
}
.lvdc-v311-line-actions{
  margin-top:10px;
  display:flex;
  justify-content:flex-end;
  gap:6px;
}
.lvdc-v311-iconbtn{
  width:30px;
  height:30px;
  border-radius:999px;
  border:1px solid #E5E5E5;
  background:#fff;
  color:#555;
  font-size:13px;
  cursor:pointer;
}
.lvdc-v311-iconbtn:hover{ background:#171717; border-color:#171717; color:#fff; }
.lvdc-v311-warn{
  margin-top:8px;
  padding:8px 10px;
  border-radius:14px;
  background:#FFF8F1;
  color:#9B4D12;
  font-size:11px;
  line-height:16px;
  font-weight:650;
}
.lvdc-v311-foot{
  height:76px;
  padding:0 30px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  border-top:1px solid #EEEEEE;
  background:rgba(255,255,255,.96);
  backdrop-filter:blur(10px);
}
.lvdc-v311-sync-note{
  font-size:12px;
  line-height:18px;
  color:#8E8E8E;
}
.lvdc-v311-actions{
  display:flex;
  gap:10px;
}
.lvdc-v311-btn{
  height:42px;
  padding:0 18px;
  border-radius:999px;
  border:1px solid #E5E5E5;
  background:#fff;
  color:#333;
  font-size:13px;
  font-weight:740;
  cursor:pointer;
}
.lvdc-v311-btn.primary{
  background:#171717;
  border-color:#171717;
  color:#fff;
}
.lvdc-v311-btn:hover{ transform:translateY(-1px); }
.lvdc-v311-toast{
  position:fixed;
  z-index:10010;
  left:50%;
  bottom:30px;
  transform:translateX(-50%);
  padding:11px 15px;
  border-radius:999px;
  background:#171717;
  color:#fff;
  font-size:12px;
  font-weight:700;
  box-shadow:0 14px 40px rgba(0,0,0,.16);
}

/* task edit modal: time contract auto-sync hint */
.lvdc-v311-autosync-hint{
  margin-top:6px;
  font-size:11px;
  line-height:16px;
  color:#8F8F8F;
}
.lvdc-v311-autosync-hint strong{
  color:#566617;
  font-weight:750;
}

@media (max-width: 980px){
  .lvdc-v311-modal{
    width:calc(100vw - 24px);
    max-height:92vh;
  }
  .lvdc-v311-main{
    grid-template-columns:1fr;
    padding:16px;
  }
  .lvdc-v311-cap{
    grid-template-columns:1fr;
  }
  .lvdc-v311-tools{
    justify-content:flex-start;
  }
}


/* ==== lovix-v255-account-row-hover-neutral.css ==== */
/* v255 · Account row hover/focus neutralization
   The relationship board rows should respond with a very light neutral gray,
   not the previous warm/green-tinted glow. Scoped to account relationship rows. */

/* Main company relationship rows */
article[data-lead-row-id]{
  transition:background-color .16s ease, border-color .16s ease, box-shadow .16s ease, transform .16s ease !important;
}
article[data-lead-row-id]:hover{
  background:#FCFCFC !important;
  border-color:#E4E4E4 !important;
  box-shadow:0 10px 24px rgba(18,18,18,.026) !important;
  transform:translateY(-1px) !important;
}

/* Selected row should also stay neutral, not green/warm. */
article[data-lead-row-id][class*="border-[#D9D6CD]"],
article[data-lead-row-id]:has(> div[role="button"]:focus){
  background:#FDFDFD !important;
}

/* Click/focus feedback: replace lime focus ring with a soft gray ring. */
article[data-lead-row-id] > div[role="button"]:focus,
article[data-lead-row-id] > div[role="button"]:focus-visible{
  outline:none !important;
  box-shadow:0 0 0 3px rgba(0,0,0,.045) !important;
  border-radius:22px !important;
}

/* Inner hover controls in the row: use neutral gray instead of green/warm feedback. */
article[data-lead-row-id] button:hover,
article[data-lead-row-id] a:hover{
  background:#F7F7F7 !important;
  border-color:#E5E5E5 !important;
}
article[data-lead-row-id] button:focus,
article[data-lead-row-id] button:focus-visible,
article[data-lead-row-id] a:focus,
article[data-lead-row-id] a:focus-visible{
  outline:none !important;
  box-shadow:0 0 0 3px rgba(0,0,0,.04) !important;
}

/* Right-side selected account panel action/dropdown hover also stays neutral. */
aside button:hover,
aside a:hover{
  background:#F7F7F7 !important;
  border-color:#E5E5E5 !important;
}
aside button:focus,
aside button:focus-visible,
aside a:focus,
aside a:focus-visible{
  outline:none !important;
  box-shadow:0 0 0 3px rgba(0,0,0,.04) !important;
}

/* Keep positive status chips themselves green; only remove hover/focus glow around cards/buttons. */
article[data-lead-row-id] .bg-\[\#F4FAD7\]\/45:hover{
  background:rgba(244,250,215,.32) !important;
}


/* ==== lovix-spark-pool.css ==== */
:root{
  --lvsp-bg:#FBFBFA;
  --lvsp-card:#FFFFFF;
  --lvsp-border:#E6E6E6;
  --lvsp-border-soft:#EFEFEF;
  --lvsp-text:#171717;
  --lvsp-muted:#9A9A9A;
  --lvsp-lime:#CFDC28;
  --lvsp-lime-soft:#F8FBEE;
  --lvsp-orange:#EA8B3A;
  --lvsp-shadow:0 12px 30px rgba(0,0,0,.026);
}

/* sidebar entry */
.lvsp-side-link{display:flex;align-items:center;gap:13px;min-height:48px;border-radius:18px;color:#555;text-decoration:none;padding:0 14px;box-sizing:border-box;margin:2px 12px;border:1px solid transparent;transition:background .15s ease,border-color .15s ease,color .15s ease;}
.lvsp-side-link:hover{background:rgba(0,0,0,.025);color:#171717;}
.lvsp-side-link.is-active{background:#F1F3E9;border-color:#E6EAE0;color:#171717;}
.lvsp-side-link.is-collapsed{justify-content:center;padding:0;width:46px;margin-left:auto;margin-right:auto;}
.lvsp-nav-icon{width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;}
.lvsp-nav-copy{display:flex;align-items:center;gap:10px;min-width:0;}
.lvsp-nav-copy strong{font-size:15px;font-weight:560;color:#313131;white-space:nowrap;}
.lvsp-nav-copy span{font-size:12px;color:#7F7F7F;white-space:nowrap;}

.lvsp-shell{min-height:100vh;background:var(--lvsp-bg);display:grid;grid-template-columns:371px minmax(0,1fr);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--lvsp-text);}
.lvsp-fallback-aside{background:#fff;border-right:1px solid var(--lvsp-border);padding:22px 12px;box-sizing:border-box;}
.lvsp-fallback-logo{display:flex;align-items:center;gap:14px;padding:0 6px 26px 6px;border-bottom:1px solid #EFEFEF;margin-bottom:18px;}
.lvsp-fallback-logo span{width:48px;height:48px;border-radius:16px;background:#171717;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:760;}
.lvsp-fallback-logo strong{display:block;font-size:18px;line-height:22px;}
.lvsp-fallback-logo em{display:block;font-style:normal;font-size:13px;color:#888;}
.lvsp-fallback-aside nav{display:grid;gap:6px;}
.lvsp-fallback-aside a{height:52px;display:flex;align-items:center;gap:12px;border-radius:18px;text-decoration:none;color:#555;padding:0 16px;box-sizing:border-box;border:1px solid transparent;}
.lvsp-fallback-aside a:hover{background:rgba(0,0,0,.025);}
.lvsp-fallback-aside a.active{background:#F1F3E9;border-color:#E6EAE0;color:#111;}
.lvsp-fallback-aside a span{font-size:16px;font-weight:560;}
.lvsp-fallback-aside a em{font-style:normal;font-size:12px;color:#8A8A8A;}
.lvsp-fallback-main{min-width:0;}

.lvsp-page{max-width:1540px;margin:0 auto;padding:38px 54px 86px;box-sizing:border-box;}
.lvsp-header{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:18px;}
.lvsp-header h1{margin:0;font-size:32px;line-height:38px;font-weight:780;letter-spacing:-.04em;}
.lvsp-header h1 span{font-size:14px;line-height:18px;color:#9A9A9A;margin-left:8px;letter-spacing:0;font-weight:700;}
.lvsp-header p{margin:8px 0 0;font-size:13px;line-height:20px;color:#8E8E8E;max-width:720px;}
.lvsp-head-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:nowrap;white-space:nowrap;}
.lvsp-btn{height:36px;border-radius:999px;border:1px solid var(--lvsp-border);background:#fff;color:#555;padding:0 15px;font-size:12px;font-weight:720;cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease,transform .15s ease;}
.lvsp-btn:hover{background:rgba(0,0,0,.025);border-color:#DEDEDE;color:#171717;}
.lvsp-btn.primary{background:#171717;border-color:#171717;color:#fff;}
.lvsp-btn.primary:hover{background:#111;color:#fff;}
.lvsp-btn.ghost{background:#FAFAFA;color:#777;}
.lvsp-chip{height:30px;border-radius:999px;border:1px solid #E8E8E8;background:#fff;color:#6F6F6F;padding:0 11px;font-size:11px;font-weight:720;cursor:pointer;}
.lvsp-chip:hover{background:rgba(0,0,0,.025);}
.lvsp-chip.active{border-color:#DDE9B6;background:var(--lvsp-lime-soft);color:#48520F;}

.lvsp-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:18px 0 14px;}
.lvsp-kpis>div{border:1px solid var(--lvsp-border);background:#fff;border-radius:22px;padding:17px 18px;box-shadow:var(--lvsp-shadow);min-height:86px;box-sizing:border-box;}
.lvsp-kpis strong{display:block;font-size:34px;line-height:38px;font-weight:740;letter-spacing:-.04em;color:#171717;}
.lvsp-kpis span{display:block;margin-top:8px;font-size:13px;font-weight:720;color:#333;}
.lvsp-kpis em{display:block;margin-top:3px;font-style:normal;font-size:11px;color:#A0A0A0;}

.lvsp-quick{height:74px;border:1px solid var(--lvsp-border);background:#fff;border-radius:28px;padding:13px 14px;box-sizing:border-box;display:grid;grid-template-columns:minmax(0,1fr) 140px 160px auto auto;gap:10px;align-items:center;margin-bottom:14px;box-shadow:var(--lvsp-shadow);}
.lvsp-quick input,.lvsp-quick select,.lvsp-input{height:42px;border:1px solid var(--lvsp-border);border-radius:18px;background:#fff;color:#171717;box-sizing:border-box;padding:0 14px;font-size:13px;outline:none;}
.lvsp-quick input:focus,.lvsp-quick select:focus,.lvsp-input:focus,.lvsp-textarea:focus{border-color:#DDE9B6;box-shadow:0 0 0 2px rgba(207,220,40,.18);}
.lvsp-toolbar{border:1px solid var(--lvsp-border);background:#fff;border-radius:28px;padding:14px;box-shadow:var(--lvsp-shadow);margin-bottom:16px;}
.lvsp-searchline{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;margin-bottom:10px;}
.lvsp-searchline input{height:42px;border:1px solid var(--lvsp-border);border-radius:999px;padding:0 16px;font-size:13px;outline:none;}
.lvsp-tabs,.lvsp-filters{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.lvsp-tabs{margin-bottom:10px;}
.lvsp-tab{height:32px;border-radius:999px;border:1px solid #E8E8E8;background:#fff;color:#6F6F6F;padding:0 13px;font-size:11.5px;font-weight:720;cursor:pointer;}
.lvsp-tab:hover{background:rgba(0,0,0,.025);}
.lvsp-tab.active{background:#171717;border-color:#171717;color:#fff;}
.lvsp-filters{padding-top:10px;border-top:1px solid #F0F0F0;}
.lvsp-filters select{height:31px;border-radius:999px;border:1px solid #E8E8E8;background:#fff;color:#777;padding:0 12px;font-size:11px;font-weight:700;outline:none;}

.lvsp-listbox{border:1px solid var(--lvsp-border);background:#fff;border-radius:30px;padding:18px;box-shadow:var(--lvsp-shadow);}
.lvsp-list-title{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px;}
.lvsp-list-title h2{margin:0;font-size:20px;line-height:26px;font-weight:780;letter-spacing:-.03em;}
.lvsp-list-title p{margin:5px 0 0;font-size:12px;color:#9A9A9A;}
.lvsp-list-title>span{height:28px;min-width:28px;border-radius:999px;border:1px solid #E6E6E6;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:720;color:#888;padding:0 8px;}
.lvsp-table{display:grid;gap:6px;}
.lvsp-row{display:grid;grid-template-columns:34px 92px minmax(220px,1.4fr) 150px 126px 74px 92px 52px 84px 74px 148px;gap:10px;align-items:center;border:1px solid #EFEFEF;border-radius:18px;background:#fff;min-height:66px;padding:8px 10px;box-sizing:border-box;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease;}
.lvsp-row:hover{background:rgba(0,0,0,.018);border-color:#E1E1E1;box-shadow:0 6px 16px rgba(0,0,0,.014);}
.lvsp-row-head{min-height:34px;background:#FAFAFA;border-color:#F0F0F0;color:#A0A0A0;font-size:10px;font-weight:760;text-transform:uppercase;letter-spacing:.04em;cursor:default;}
.lvsp-row-head:hover{background:#FAFAFA;box-shadow:none;}
.lvsp-check{display:flex;align-items:center;justify-content:center;}
.lvsp-check input{accent-color:var(--lvsp-lime);}
.lvsp-type,.lvsp-status,.lvsp-value,.lvsp-mini,.lvsp-tag{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;border-radius:999px;font-size:10.5px;font-weight:700;height:24px;padding:0 9px;box-sizing:border-box;}
.lvsp-type{border:1px solid #E7E7E7;color:#555;background:#fff;}
.lvsp-status{border:1px solid #E8E8E8;color:#777;background:#fff;}
.lvsp-status.inbox{border-color:#E8E8E8;background:#fff;color:#777;}
.lvsp-status.review{border-color:#DDE9B6;background:#F9FCEC;color:#53600F;}
.lvsp-status.exported,.lvsp-status.returned,.lvsp-status.promoted{border-color:#E8D4AD;background:#FFFDF8;color:#8A611E;}
.lvsp-status.archived{color:#aaa;background:#FAFAFA;}
.lvsp-value{border:1px solid #E7E7E7;color:#777;background:#fff;}
.lvsp-maincell{min-width:0;display:grid;gap:4px;}
.lvsp-maincell strong{font-size:13.5px;line-height:18px;font-weight:750;color:#171717;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.lvsp-maincell em{font-style:normal;font-size:11.5px;line-height:16px;color:#929292;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.lvsp-themes,.lvsp-tags{display:flex;gap:5px;align-items:center;overflow:hidden;min-width:0;}
.lvsp-mini{height:22px;border:1px solid #E8E8E8;background:#fff;color:#777;font-size:10px;padding:0 8px;max-width:82px;overflow:hidden;text-overflow:ellipsis;}
.lvsp-tag{height:22px;color:#999;background:#FAFAFA;border:1px solid #EFEFEF;font-size:10px;padding:0 7px;max-width:70px;overflow:hidden;text-overflow:ellipsis;}
.lvsp-mini.muted,.lvsp-tag.muted{color:#aaa;background:#fff;}
.lvsp-filecell,.lvsp-link,.lvsp-date{font-size:11px;color:#8D8D8D;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.lvsp-file{height:24px;border-radius:999px;border:1px solid #E8E8E8;background:#fff;color:#777;font-size:10px;font-weight:720;padding:0 8px;cursor:pointer;}
.lvsp-file:hover{background:rgba(0,0,0,.025);}
.lvsp-actions-cell{display:flex;gap:5px;align-items:center;justify-content:flex-end;}
.lvsp-actions-cell button,.lvsp-attach button,.lvsp-similar,.lvsp-suggests button,.lvsp-theme-item button,.lvsp-logic button{height:25px;border-radius:999px;border:1px solid #E8E8E8;background:#fff;color:#555;font-size:10px;font-weight:720;padding:0 8px;cursor:pointer;}
.lvsp-actions-cell button:hover,.lvsp-attach button:hover,.lvsp-similar:hover,.lvsp-suggests button:hover,.lvsp-theme-item button:hover,.lvsp-logic button:hover{background:rgba(0,0,0,.025);}
.lvsp-empty{border:1px dashed #E5E5E5;background:#fff;border-radius:20px;padding:22px;color:#9A9A9A;font-size:12px;line-height:20px;grid-column:1/-1;}
.lvsp-empty.small{padding:12px;border-radius:16px;}
.lvsp-empty.big{text-align:center;padding:38px;}
.lvsp-load{display:flex;justify-content:center;margin-top:14px;}

.lvsp-logic{display:grid;gap:10px;}
.lvsp-logic details{border:1px solid #EFEFEF;border-radius:20px;background:#fff;padding:11px 12px;}
.lvsp-logic summary{cursor:pointer;list-style:none;font-size:13px;font-weight:780;}
.lvsp-logic summary span{color:#aaa;font-size:11px;margin-left:6px;}
.lvsp-logic .inner{background:#FEFEFE;margin-top:10px;}
.lvsp-logic button{display:block;width:100%;height:auto;min-height:34px;text-align:left;margin-top:7px;border-radius:14px;padding:7px 10px;}
.lvsp-logic button em{float:right;font-style:normal;color:#aaa;}

.lvsp-batch{position:fixed;left:50%;bottom:20px;transform:translateX(-50%);z-index:9999;display:flex;align-items:center;gap:8px;border:1px solid #E6E6E6;background:rgba(255,255,255,.96);backdrop-filter:blur(16px);border-radius:999px;padding:9px 12px;box-shadow:0 16px 50px rgba(0,0,0,.12);}
.lvsp-batch strong{font-size:12px;margin:0 6px;}
.lvsp-batch button{height:30px;border-radius:999px;border:1px solid #E8E8E8;background:#fff;color:#555;font-size:11px;font-weight:720;padding:0 10px;cursor:pointer;}
.lvsp-batch button:hover{background:rgba(0,0,0,.025);}

.lvsp-backdrop,.lvsp-drawer-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.20);z-index:10000;}
.lvsp-modal{position:fixed;z-index:10001;left:50%;top:50%;transform:translate(-50%,-50%);width:min(940px,92vw);max-height:88vh;background:#fff;border:1px solid #E6E6E6;border-radius:30px;box-shadow:0 28px 90px rgba(0,0,0,.18);display:flex;flex-direction:column;overflow:hidden;}
.lvsp-modal header,.lvsp-drawer header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;border-bottom:1px solid #EFEFEF;padding:20px 24px 16px;}
.lvsp-modal h2,.lvsp-drawer h2{margin:0;font-size:24px;line-height:30px;font-weight:780;letter-spacing:-.035em;}
.lvsp-modal h2 span,.lvsp-drawer h2 span{font-size:13px;color:#9A9A9A;letter-spacing:0;margin-left:6px;}
.lvsp-modal header p,.lvsp-drawer header p{margin:5px 0 0;font-size:12px;color:#9A9A9A;line-height:18px;}
.lvsp-modal header button,.lvsp-drawer header button{width:36px;height:36px;border-radius:999px;border:1px solid #E8E8E8;background:#fff;color:#777;font-size:20px;cursor:pointer;}
.lvsp-modal-body{padding:22px 24px;overflow:auto;scrollbar-width:none;}
.lvsp-modal footer,.lvsp-drawer footer{border-top:1px solid #EFEFEF;padding:14px 24px;display:flex;justify-content:flex-end;gap:10px;background:#fff;}
.lvsp-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:start;}
.lvsp-form-grid.mini{grid-template-columns:repeat(2,minmax(0,1fr));}
.lvsp-form-grid label{font-size:11px;color:#888;font-weight:720;display:grid;gap:6px;}
.lvsp-form-grid .wide{grid-column:1/-1;}
.lvsp-textarea{min-height:120px;border:1px solid #E6E6E6;border-radius:18px;padding:12px 14px;resize:vertical;outline:none;font-size:13px;line-height:20px;font-family:inherit;box-sizing:border-box;width:100%;}
.lvsp-textarea.big{min-height:180px;}
.lvsp-textarea.export{min-height:360px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;}
.lvsp-hint{font-size:12px;line-height:20px;color:#9A9A9A;margin:12px 0 0;}

.lvsp-drawer{position:fixed;z-index:10001;right:0;top:0;bottom:0;width:min(680px,92vw);background:#fff;border-left:1px solid #E6E6E6;box-shadow:-24px 0 80px rgba(0,0,0,.14);display:flex;flex-direction:column;}
.lvsp-drawer-body{padding:18px 22px;overflow:auto;scrollbar-width:none;}
.lvsp-drawer-scroll{display:grid;gap:12px;}
.lvsp-drawer label{font-size:11px;color:#888;font-weight:720;display:grid;gap:6px;}
.lvsp-attach-block,.lvsp-similar-block{border-top:1px solid #F0F0F0;padding-top:14px;}
.lvsp-attach-block h3,.lvsp-similar-block h3{font-size:14px;line-height:18px;margin:0 0 10px;}
.lvsp-attach{border:1px solid #EFEFEF;border-radius:18px;padding:11px 12px;background:#fff;margin-bottom:8px;}
.lvsp-attach strong{display:block;font-size:12px;color:#171717;}
.lvsp-attach span{display:block;font-size:10px;color:#999;margin:3px 0 8px;}
.lvsp-attach div{display:flex;gap:6px;flex-wrap:wrap;}
.lvsp-similar{display:block;width:100%;height:auto;text-align:left;border-radius:16px;padding:10px 12px;margin-bottom:8px;}
.lvsp-similar strong{display:block;font-size:12px;line-height:17px;color:#171717;}
.lvsp-similar span{display:block;font-size:10px;color:#999;margin-top:4px;}
.lvsp-preview-img{max-width:100%;max-height:66vh;display:block;margin:auto;border-radius:18px;border:1px solid #E6E6E6;}
.lvsp-preview-frame{width:100%;height:66vh;border:1px solid #E6E6E6;border-radius:18px;background:#fff;}
.lvsp-preview-text{white-space:pre-wrap;background:#FAFAFA;border:1px solid #E6E6E6;border-radius:18px;padding:16px;font-size:12px;line-height:20px;max-height:66vh;overflow:auto;}
.lvsp-suggests{display:grid;gap:8px;}
.lvsp-suggests>div{display:grid;grid-template-columns:150px 150px minmax(0,1fr) auto;gap:10px;align-items:center;border:1px solid #EFEFEF;border-radius:16px;padding:10px;font-size:12px;}
.lvsp-suggests em{font-style:normal;color:#999;}
.lvsp-theme-manager{display:grid;grid-template-columns:240px minmax(0,1fr);gap:16px;}
.lvsp-theme-manager>div:last-child{display:grid;gap:8px;}
.lvsp-theme-item{display:grid;grid-template-columns:minmax(0,1fr) 120px auto auto;gap:8px;align-items:center;border:1px solid #EFEFEF;border-radius:16px;padding:10px;font-size:12px;}
.lvsp-theme-item span{color:#999;font-size:11px;}

@media (max-width:1500px){
  .lvsp-shell{grid-template-columns:320px minmax(0,1fr);}
  .lvsp-page{padding-left:42px;padding-right:42px;}
  .lvsp-row{grid-template-columns:32px 86px minmax(210px,1.3fr) 132px 110px 66px 72px 48px 74px 64px 124px;gap:8px;}
  .lvsp-head-actions{flex-wrap:wrap;}
}
@media (max-width:1240px){
  .lvsp-shell{grid-template-columns:72px minmax(0,1fr);}
  .lvsp-fallback-logo div,.lvsp-fallback-aside a em,.lvsp-fallback-aside a span{display:none;}
  .lvsp-fallback-logo{justify-content:center;padding-bottom:16px;}
  .lvsp-fallback-logo span{width:44px;height:44px;}
  .lvsp-fallback-aside a{justify-content:center;padding:0;}
  .lvsp-kpis{grid-template-columns:repeat(2,minmax(0,1fr));}
  .lvsp-quick{grid-template-columns:1fr 130px auto; height:auto;}
  .lvsp-quick #lvsp-quick-theme,.lvsp-quick .ghost{display:none;}
  .lvsp-table{overflow:auto;}
  .lvsp-row{min-width:1080px;}
}
@media (max-width:900px){
  .lvsp-shell{display:block;}
  .lvsp-fallback-aside{display:none;}
  .lvsp-page{padding:24px 16px 72px;}
  .lvsp-header{display:block;}
  .lvsp-head-actions{justify-content:flex-start;margin-top:14px;}
  .lvsp-kpis{grid-template-columns:1fr;}
  .lvsp-searchline{grid-template-columns:1fr;}
  .lvsp-form-grid,.lvsp-theme-manager{grid-template-columns:1fr;}
  .lvsp-theme-item,.lvsp-suggests>div{grid-template-columns:1fr;}
}

/* v260 sidebar recovery: fallback shell must look like Lovix main nav and contain Spark only once */
.lvsp-fallback-aside{padding:22px 12px!important;}
.lvsp-fallback-aside a{position:relative;height:52px;gap:13px;padding:0 18px!important;margin:2px 0;border-radius:18px;}
.lvsp-fallback-aside a .lvsp-fallback-icon{width:23px;height:23px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;color:#6E6E6E;}
.lvsp-fallback-aside a.active .lvsp-fallback-icon{color:#171717;}
.lvsp-fallback-aside a span{font-size:15px!important;font-weight:560!important;color:#333;white-space:nowrap;}
.lvsp-fallback-aside a em{font-size:12px!important;color:#8B8B8B;white-space:nowrap;}
.lvsp-fallback-aside a b{margin-left:auto;font-size:20px;line-height:1;color:#999;font-weight:400;}
.lvsp-fallback-aside a.active{background:#F1F3E9!important;border-color:#E6EAE0!important;}
.lvsp-fallback-aside .lvsp-side-link{display:none!important;}

/* v264 Spark Pool compact strip grid
   Goal: replace long table rows with high-density small strips.
   4 cards on normal widths, 5 cards on wide widths; click card toggles inline detail. */
.lvsp-listbox.lvsp-stripbox{
  padding:22px 22px 24px !important;
}
.lvsp-listbox.lvsp-stripbox .lvsp-list-title{
  margin-bottom:14px !important;
}
.lvsp-listbox.lvsp-stripbox .lvsp-list-title h2{
  display:flex;
  align-items:baseline;
  gap:8px;
}
.lvsp-listbox.lvsp-stripbox .lvsp-list-title h2 span{
  font-size:12px;
  color:#9A9A9A;
  font-weight:650;
  letter-spacing:0;
}
.lvsp-strip-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(300px,1fr));
  gap:12px;
  align-items:start;
}
.lvsp-strip{
  position:relative;
  min-height:122px;
  border:1px solid #EAEAEA;
  border-radius:22px;
  background:linear-gradient(180deg,#FFFFFF 0%,#FFFFFF 72%,#FBFCF8 100%);
  padding:14px 15px 13px;
  box-sizing:border-box;
  cursor:pointer;
  overflow:hidden;
  transition:border-color .16s ease, box-shadow .16s ease, background .16s ease, transform .16s ease;
}
.lvsp-strip:hover{
  background:linear-gradient(180deg,#FFFFFF 0%,#FFFFFF 74%,#FAFAFA 100%);
  border-color:#E3E3E3;
  box-shadow:0 8px 22px rgba(0,0,0,.018);
  transform:translateY(-1px);
}
.lvsp-strip.is-open{
  min-height:258px;
  border-color:#DDE8C8;
  background:linear-gradient(180deg,#FFFFFF 0%,#FFFFFF 55%,#FBFCF7 100%);
  box-shadow:0 12px 30px rgba(0,0,0,.024);
}
.lvsp-strip-top{
  display:grid;
  grid-template-columns:22px auto auto 44px;
  align-items:center;
  gap:7px;
  min-width:0;
}
.lvsp-strip .lvsp-check{
  width:22px;
  height:22px;
  display:flex;
  align-items:center;
  justify-content:center;
}
.lvsp-strip .lvsp-check input{
  width:14px;
  height:14px;
}
.lvsp-strip .lvsp-type,
.lvsp-strip .lvsp-status,
.lvsp-strip .lvsp-value,
.lvsp-strip .lvsp-date{
  height:22px;
  border-radius:999px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0 9px;
  font-size:10px;
  line-height:1;
  font-weight:700;
  white-space:nowrap;
  box-sizing:border-box;
}
.lvsp-strip .lvsp-type{
  color:#555;
  border:1px solid #E8E8E8;
  background:#fff;
  justify-self:start;
  max-width:94px;
  overflow:hidden;
  text-overflow:ellipsis;
}
.lvsp-strip .lvsp-status{
  justify-self:start;
  max-width:78px;
}
.lvsp-strip .lvsp-date{
  justify-self:end;
  padding:0;
  color:#A0A0A0;
  border:0;
  background:transparent;
  font-size:10.5px;
  font-weight:650;
}
.lvsp-strip-main{
  display:grid;
  gap:4px;
  margin-top:10px;
  min-width:0;
}
.lvsp-strip-main strong{
  font-size:13px;
  line-height:18px;
  font-weight:760;
  letter-spacing:-.015em;
  color:#171717;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.lvsp-strip-main em{
  font-style:normal;
  font-size:11px;
  line-height:15px;
  color:#9A9A9A;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.lvsp-strip-meta{
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto auto auto auto;
  align-items:center;
  gap:5px 6px;
  margin-top:11px;
  padding-top:10px;
  border-top:1px solid #F1F1F1;
}
.lvsp-strip-meta span{
  color:#A3A3A3;
  font-size:9.5px;
  font-weight:720;
}
.lvsp-strip-meta b{
  color:#747474;
  font-size:10px;
  font-weight:720;
  min-width:0;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.lvsp-strip-detail{
  margin-top:12px;
  padding-top:12px;
  border-top:1px solid #F0F0F0;
  display:grid;
  gap:10px;
}
.lvsp-strip-detail p{
  margin:0;
  color:#6F6F6F;
  font-size:11px;
  line-height:17px;
  display:-webkit-box;
  -webkit-line-clamp:4;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.lvsp-strip-chips{
  display:flex;
  flex-wrap:wrap;
  gap:5px;
  min-height:22px;
}
.lvsp-strip .lvsp-mini,
.lvsp-strip .lvsp-tag{
  height:20px;
  max-width:86px;
  font-size:9.5px;
  padding:0 7px;
  border-radius:999px;
  display:inline-flex;
  align-items:center;
}
.lvsp-strip-info{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  color:#A0A0A0;
  font-size:10px;
  line-height:15px;
}
.lvsp-strip .lvsp-actions-cell{
  justify-content:flex-start;
  flex-wrap:wrap;
  gap:6px;
}
.lvsp-strip .lvsp-actions-cell button{
  height:24px;
  padding:0 9px;
  font-size:10px;
  border-radius:999px;
}
.lvsp-strip .lvsp-actions-cell button:first-child{
  background:#171717;
  border-color:#171717;
  color:#fff;
}
.lvsp-strip-grid .lvsp-empty{
  grid-column:1/-1;
}
@media (min-width:1760px){
  .lvsp-strip-grid{grid-template-columns:repeat(5,minmax(0,1fr));}
}
@media (max-width:1480px){
  .lvsp-strip-grid{grid-template-columns:repeat(auto-fill,minmax(270px,1fr));}
}
@media (max-width:1120px){
  .lvsp-strip-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:720px){
  .lvsp-strip-grid{grid-template-columns:1fr;}
}

/* v265 ThemeTree card: classification card inspired by Today Tasks visual system */
.lvsp-content-grid{
  display:grid;
  grid-template-columns:320px minmax(0,1fr);
  gap:18px;
  align-items:start;
}
.lvsp-theme-tree-card{
  position:sticky;
  top:18px;
  align-self:start;
  max-height:calc(100vh - 36px);
  overflow:auto;
  scrollbar-width:none;
  border:1px solid #E6E6E6;
  background:linear-gradient(180deg,#FFFFFF 0%,#FFFFFF 76%,#FBFCF7 100%);
  border-radius:30px;
  padding:22px 20px 18px;
  box-shadow:0 10px 28px rgba(0,0,0,.018);
}
.lvsp-theme-tree-card::-webkit-scrollbar{display:none;}
.lvsp-tree-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  padding-bottom:14px;
  border-bottom:1px solid #F0F0F0;
}
.lvsp-tree-head h2{
  margin:0;
  font-size:17px;
  line-height:22px;
  font-weight:780;
  letter-spacing:-.025em;
  color:#171717;
}
.lvsp-tree-head h2 span{
  margin-left:6px;
  font-size:11px;
  line-height:14px;
  letter-spacing:0;
  color:#9B9B9B;
  font-weight:650;
}
.lvsp-tree-head p{
  margin:5px 0 0;
  color:#9B9B9B;
  font-size:11px;
  line-height:16px;
  font-weight:650;
}
.lvsp-tree-reset,
.lvsp-tree-foot button{
  height:28px;
  padding:0 11px;
  border-radius:999px;
  border:1px solid #E8E8E8;
  background:#fff;
  color:#555;
  font-size:10.5px;
  font-weight:720;
  cursor:pointer;
}
.lvsp-tree-reset:hover,.lvsp-tree-foot button:hover{background:rgba(0,0,0,.025);}
.lvsp-tree-summary{
  margin:14px 0 10px;
  display:grid;
  gap:3px;
  padding:10px 12px;
  border:1px solid #F0F0F0;
  border-radius:18px;
  background:#FCFCFC;
}
.lvsp-tree-summary span{font-size:10px;color:#A0A0A0;font-weight:720;letter-spacing:.03em;text-transform:uppercase;}
.lvsp-tree-summary b{font-size:11.5px;line-height:16px;color:#666;font-weight:700;}
.lvsp-tree-body{display:grid;gap:0;}
.lvsp-tree-group{
  padding:14px 0 13px;
  border-top:1px solid #F1F1F1;
}
.lvsp-tree-group:first-child{border-top:0;}
.lvsp-tree-type,
.lvsp-tree-theme{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  border:0;
  background:transparent;
  color:#555;
  cursor:pointer;
  box-sizing:border-box;
  transition:background .16s ease,color .16s ease, transform .16s ease;
}
.lvsp-tree-type{
  min-height:32px;
  padding:0 8px 0 10px;
  border-radius:16px;
}
.lvsp-tree-type strong{
  font-size:14px;
  line-height:19px;
  font-weight:780;
  color:#444;
}
.lvsp-tree-type em,
.lvsp-tree-theme em{
  font-style:normal;
  font-size:11px;
  font-weight:760;
  color:#A0A0A0;
  font-variant-numeric:tabular-nums;
}
.lvsp-tree-type:hover,
.lvsp-tree-theme:hover{
  background:rgba(0,0,0,.025);
}
.lvsp-tree-type.active{
  background:#F4F7E9;
}
.lvsp-tree-type.active strong{color:#171717;}
.lvsp-tree-themes{
  display:grid;
  gap:4px;
  margin-top:8px;
}
.lvsp-tree-theme{
  min-height:30px;
  padding:0 10px 0 22px;
  border-radius:999px;
}
.lvsp-tree-theme span{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:12.5px;
  line-height:17px;
  font-weight:720;
  color:#555;
}
.lvsp-tree-theme.active{
  background:#F2F6E3;
  box-shadow:inset 0 0 0 1px rgba(207,220,40,.12);
}
.lvsp-tree-theme.active span{color:#171717;}
.lvsp-tree-empty{
  margin:8px 0 0 10px;
  font-size:11px;
  color:#B0B0B0;
  line-height:18px;
}
.lvsp-tree-foot{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-top:14px;
  padding-top:14px;
  border-top:1px solid #F1F1F1;
}
.lvsp-tree-foot span{
  font-size:10.5px;
  line-height:14px;
  color:#A0A0A0;
  font-weight:650;
}
@media (max-width:1500px){
  .lvsp-content-grid{grid-template-columns:300px minmax(0,1fr);gap:16px;}
  .lvsp-theme-tree-card{padding:20px 18px 16px;}
}
@media (max-width:1120px){
  .lvsp-content-grid{grid-template-columns:1fr;}
  .lvsp-theme-tree-card{position:relative;top:auto;max-height:none;}
  .lvsp-tree-body{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px;}
}
@media (max-width:720px){
  .lvsp-tree-body{grid-template-columns:1fr;}
}

/* v266 route-safety: Spark renders inside a dedicated React placeholder only. */
.lvsp-react-mount{width:100%;min-height:100vh;box-sizing:border-box;background:#F9F9F8;}

/* v275: card checkboxes only appear after entering selection mode */
.lvsp-list-tools{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  flex-wrap:wrap;
  min-width:max-content;
}
.lvsp-list-tools .lvsp-btn{
  height:30px;
  padding:0 12px;
  font-size:11px;
}
.lvsp-list-tools>span{
  height:28px;
  min-width:28px;
  border-radius:999px;
  border:1px solid #E6E6E6;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:11px;
  font-weight:720;
  color:#888;
  padding:0 8px;
}
.lvsp-listbox.lvsp-stripbox:not(.is-selecting) .lvsp-strip-top{
  grid-template-columns:auto auto 44px;
}
.lvsp-listbox.lvsp-stripbox:not(.is-selecting) .lvsp-strip .lvsp-check{
  display:none !important;
}
.lvsp-listbox.lvsp-stripbox.is-selecting .lvsp-strip:has(input:checked){
  border-color:#DDE9B6;
  background:linear-gradient(180deg,#FFFFFF 0%,#FFFFFF 66%,#F8FBEE 100%);
}
.lvsp-listbox.lvsp-stripbox.is-selecting .lvsp-strip .lvsp-check input{
  width:15px;
  height:15px;
}
@media (max-width:720px){
  .lvsp-list-tools{justify-content:flex-start;min-width:0;}
}


/* ==== lovix-sidebar-font-fix.css ==== */
/* Lovix v270 · App Sidebar typography lock
   Scope: ONLY the global App Sidebar inside #root.
   Goal: keep every main nav label at the same size and prevent the Key Lists row
   from being picked up by dashboard board-header patches. No layout/sidebar nesting changes. */
#root aside:not(.lvsp-fallback-aside) nav > a,
#root aside:not(.lvsp-fallback-aside) nav > div > div[class*="cursor-pointer"]{
  height:36px !important;
  min-height:36px !important;
  max-height:36px !important;
  align-items:center !important;
  box-sizing:border-box !important;
  font-size:13px !important;
  line-height:18px !important;
  transition-property:background-color,border-color,color,opacity !important;
}
#root aside:not(.lvsp-fallback-aside) nav > a > svg,
#root aside:not(.lvsp-fallback-aside) nav > div > div[class*="cursor-pointer"] > svg{
  width:18px !important;
  height:18px !important;
  min-width:18px !important;
  flex:0 0 18px !important;
}
#root aside:not(.lvsp-fallback-aside) nav > a > div,
#root aside:not(.lvsp-fallback-aside) nav > div > div[class*="cursor-pointer"] > div{
  min-width:0 !important;
  align-items:baseline !important;
  gap:8px !important;
  font-size:13px !important;
  line-height:18px !important;
}
#root aside:not(.lvsp-fallback-aside) nav > a > div > span:first-child,
#root aside:not(.lvsp-fallback-aside) nav > div > div[class*="cursor-pointer"] > div > span:first-child{
  font-size:13px !important;
  line-height:18px !important;
  font-weight:500 !important;
  letter-spacing:0 !important;
  white-space:nowrap !important;
  transform:none !important;
}
#root aside:not(.lvsp-fallback-aside) nav > a > div > span:nth-child(2),
#root aside:not(.lvsp-fallback-aside) nav > div > div[class*="cursor-pointer"] > div > span:nth-child(2){
  font-size:10px !important;
  line-height:14px !important;
  font-weight:400 !important;
  letter-spacing:0 !important;
  white-space:nowrap !important;
  transform:none !important;
}
#root aside:not(.lvsp-fallback-aside) nav > div > div + div a{
  height:32px !important;
  min-height:32px !important;
  max-height:32px !important;
  align-items:center !important;
  font-size:12px !important;
  line-height:16px !important;
}
#root aside:not(.lvsp-fallback-aside) nav > div > div + div a svg{
  width:16px !important;
  height:16px !important;
  min-width:16px !important;
  flex:0 0 16px !important;
}
#root aside:not(.lvsp-fallback-aside) nav > div > div + div a span:first-child{
  font-size:12px !important;
  line-height:16px !important;
  font-weight:500 !important;
  white-space:nowrap !important;
}
#root aside:not(.lvsp-fallback-aside) nav > div > div + div a span:nth-child(2){
  font-size:10px !important;
  line-height:14px !important;
  font-weight:400 !important;
  white-space:nowrap !important;
}


/* ==== lovix-inventory.css ==== */
:root{
  --lvinv-bg:#FBFBFA;
  --lvinv-card:#FFFFFF;
  --lvinv-border:#E6E6E6;
  --lvinv-border-soft:#EFEFEF;
  --lvinv-text:#171717;
  --lvinv-muted:#8F8F8F;
  --lvinv-soft:#A2A2A2;
  --lvinv-lime:#CFDC28;
  --lvinv-lime-soft:#F8FBEE;
  --lvinv-orange:#EA8B3A;
  --lvinv-orange-soft:#FFF7EF;
  --lvinv-redsoft:#FFF3EE;
  --lvinv-shadow:0 12px 30px rgba(0,0,0,.024);
}
.lvinv-page{max-width:1540px;margin:0 auto;padding:38px 54px 86px;box-sizing:border-box;color:var(--lvinv-text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;}
.lvinv-header{display:flex;align-items:flex-start;justify-content:space-between;gap:22px;margin-bottom:18px;}
.lvinv-header h1{margin:0;font-size:32px;line-height:38px;font-weight:780;letter-spacing:-.04em;color:#171717;}
.lvinv-header h1 span{font-size:14px;line-height:18px;color:#9A9A9A;margin-left:8px;letter-spacing:0;font-weight:700;}
.lvinv-header p{margin:8px 0 0;font-size:13px;line-height:20px;color:#8E8E8E;max-width:760px;}
.lvinv-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;white-space:nowrap;flex-wrap:nowrap;}
.lvinv-btn{height:36px;border-radius:999px;border:1px solid var(--lvinv-border);background:#fff;color:#555;padding:0 15px;font-size:12px;font-weight:720;cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease,transform .15s ease;}
.lvinv-btn:hover{background:rgba(0,0,0,.025);border-color:#DEDEDE;color:#171717;}
.lvinv-btn.primary{background:#171717;border-color:#171717;color:#fff;}
.lvinv-btn.primary:hover{background:#111;color:#fff;}
.lvinv-btn.danger{border-color:#F0D4CA;color:#A8562D;background:#FFFDFB;}
.lvinv-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:18px 0 14px;}
.lvinv-kpi{border:1px solid var(--lvinv-border);background:#fff;border-radius:22px;padding:17px 18px;box-shadow:var(--lvinv-shadow);min-height:86px;box-sizing:border-box;}
.lvinv-kpi strong{display:block;font-size:34px;line-height:38px;font-weight:740;letter-spacing:-.04em;color:#171717;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.lvinv-kpi span{display:block;margin-top:8px;font-size:13px;font-weight:720;color:#333;}
.lvinv-kpi em{display:block;margin-top:3px;font-style:normal;font-size:11px;color:#A0A0A0;}
.lvinv-toolbar{border:1px solid var(--lvinv-border);background:#fff;border-radius:28px;padding:14px;box-shadow:var(--lvinv-shadow);margin-bottom:16px;}
.lvinv-searchline{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;margin-bottom:10px;}
.lvinv-input,.lvinv-select,.lvinv-textarea{border:1px solid var(--lvinv-border);border-radius:18px;background:#fff;color:#171717;box-sizing:border-box;padding:0 14px;font-size:13px;outline:none;}
.lvinv-input,.lvinv-select{height:42px;}
.lvinv-textarea{min-height:106px;padding:12px 14px;resize:vertical;line-height:20px;}
.lvinv-input:focus,.lvinv-select:focus,.lvinv-textarea:focus{border-color:#DDE9B6;box-shadow:0 0 0 2px rgba(207,220,40,.18);}
.lvinv-tabs,.lvinv-filters{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.lvinv-tabs{margin-bottom:10px;}
.lvinv-tab{height:32px;border-radius:999px;border:1px solid #E8E8E8;background:#fff;color:#6F6F6F;padding:0 13px;font-size:11.5px;font-weight:720;cursor:pointer;}
.lvinv-tab:hover{background:rgba(0,0,0,.025);}
.lvinv-tab.active{background:#171717;border-color:#171717;color:#fff;}
.lvinv-filters{padding-top:10px;border-top:1px solid #F0F0F0;}
.lvinv-filters select{height:31px;border-radius:999px;border:1px solid #E8E8E8;background:#fff;color:#777;padding:0 12px;font-size:11px;font-weight:700;outline:none;}
.lvinv-board{border:1px solid var(--lvinv-border);background:#fff;border-radius:30px;padding:18px;box-shadow:var(--lvinv-shadow);}
.lvinv-board-title{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px;}
.lvinv-board-title h2{margin:0;font-size:20px;line-height:26px;font-weight:780;letter-spacing:-.03em;}
.lvinv-board-title p{margin:5px 0 0;font-size:12px;color:#9A9A9A;}
.lvinv-count{height:28px;min-width:28px;border-radius:999px;border:1px solid #E6E6E6;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:720;color:#888;padding:0 8px;}
.lvinv-table-wrap{overflow:auto;scrollbar-width:thin;}
.lvinv-table{min-width:1480px;display:grid;gap:6px;}
.lvinv-row{display:grid;grid-template-columns:34px 130px minmax(190px,1.2fr) 140px 150px 168px 82px 82px 80px 80px 80px 84px 92px 120px 82px 170px;gap:10px;align-items:center;border:1px solid #EFEFEF;border-radius:18px;background:#fff;min-height:58px;padding:7px 10px;box-sizing:border-box;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease;}
.lvinv-row:hover{background:rgba(0,0,0,.016);border-color:#E1E1E1;box-shadow:0 6px 16px rgba(0,0,0,.012);}
.lvinv-row-head{min-height:34px;background:#FAFAFA;border-color:#F0F0F0;color:#A0A0A0;font-size:10px;font-weight:760;text-transform:uppercase;letter-spacing:.04em;cursor:default;}
.lvinv-row-head:hover{background:#FAFAFA;box-shadow:none;}
.lvinv-check{display:flex;align-items:center;justify-content:center;}
.lvinv-check input{accent-color:var(--lvinv-lime);}
.lvinv-main{min-width:0;display:grid;gap:4px;}
.lvinv-main strong{font-size:13px;line-height:17px;font-weight:760;color:#171717;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.lvinv-main em{font-style:normal;font-size:11px;line-height:15px;color:#929292;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.lvinv-cell{min-width:0;font-size:11.5px;line-height:16px;color:#666;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.lvinv-num{text-align:right;font-variant-numeric:tabular-nums;font-size:12px;color:#333;font-weight:650;}
.lvinv-money{text-align:right;font-variant-numeric:tabular-nums;font-size:12px;color:#171717;font-weight:720;}
.lvinv-chip{height:24px;border-radius:999px;border:1px solid #E8E8E8;background:#fff;color:#777;display:inline-flex;align-items:center;justify-content:center;font-size:10px;font-weight:720;padding:0 8px;white-space:nowrap;}
.lvinv-chip.normal{border-color:#E8E8E8;background:#fff;color:#777;}
.lvinv-chip.low_stock{border-color:#E8D4AD;background:#FFFDF8;color:#8A611E;}
.lvinv-chip.out_of_stock{border-color:#F0CDBC;background:#FFF7EF;color:#A8562D;}
.lvinv-chip.overstock{border-color:#E7DDBF;background:#FFFDF0;color:#82651B;}
.lvinv-chip.inactive{background:#FAFAFA;color:#aaa;}
.lvinv-row.is-low{background:linear-gradient(180deg,#fff 0%,#fff 60%,#FFFDF8 100%);}
.lvinv-row.is-out{background:linear-gradient(180deg,#fff 0%,#fff 58%,#FFF7EF 100%);}
.lvinv-cell.actions{display:flex;gap:5px;align-items:center;justify-content:flex-end;}
.lvinv-mini-btn{height:25px;border-radius:999px;border:1px solid #E8E8E8;background:#fff;color:#555;font-size:10px;font-weight:720;padding:0 8px;cursor:pointer;}
.lvinv-mini-btn:hover{background:rgba(0,0,0,.025);}
.lvinv-group-view{display:grid;gap:10px;}
.lvinv-group-line{border:1px solid #EDEDED;border-radius:20px;background:#fff;overflow:hidden;}
.lvinv-group-head{height:48px;padding:0 16px;display:flex;align-items:center;justify-content:space-between;background:#FAFAFA;border-bottom:1px solid #EFEFEF;cursor:pointer;}
.lvinv-group-head strong{font-size:13px;}
.lvinv-group-head span{font-size:11px;color:#888;}
.lvinv-group-children{display:grid;gap:0;padding:8px 12px;}
.lvinv-group-item{display:grid;grid-template-columns:130px minmax(0,1fr) 90px 90px 100px 90px;gap:12px;align-items:center;min-height:38px;border-bottom:1px solid #F3F3F3;font-size:11.5px;color:#666;}
.lvinv-group-item:last-child{border-bottom:0;}
.lvinv-batch{position:fixed;left:50%;bottom:22px;z-index:9999;transform:translateX(-50%);min-height:48px;border:1px solid #E6E6E6;border-radius:999px;background:#171717;color:#fff;box-shadow:0 14px 38px rgba(0,0,0,.14);display:none;align-items:center;gap:8px;padding:0 10px 0 16px;}
.lvinv-batch.show{display:flex;}
.lvinv-batch strong{font-size:12px;margin-right:6px;}
.lvinv-batch button{height:32px;border-radius:999px;border:1px solid rgba(255,255,255,.14);background:#fff;color:#171717;font-size:11px;font-weight:720;padding:0 12px;cursor:pointer;}
.lvinv-backdrop{position:fixed;inset:0;z-index:10000;background:rgba(0,0,0,.18);}
.lvinv-drawer{position:fixed;right:0;top:0;bottom:0;z-index:10001;width:min(680px,92vw);background:#fff;border-left:1px solid #E6E6E6;box-shadow:-18px 0 56px rgba(0,0,0,.12);display:flex;flex-direction:column;}
.lvinv-drawer-head{padding:22px 24px 16px;border-bottom:1px solid #EFEFEF;display:flex;align-items:flex-start;justify-content:space-between;gap:16px;}
.lvinv-drawer-head h2{margin:0;font-size:24px;line-height:30px;letter-spacing:-.035em;}
.lvinv-drawer-head p{margin:5px 0 0;font-size:12px;color:#999;}
.lvinv-close{height:34px;width:34px;border-radius:999px;border:1px solid #E6E6E6;background:#fff;cursor:pointer;font-size:18px;}
.lvinv-drawer-body{padding:18px 24px 24px;overflow:auto;display:grid;gap:16px;}
.lvinv-detail-section{border:1px solid #EFEFEF;border-radius:22px;background:#fff;padding:15px;}
.lvinv-detail-section h3{margin:0 0 12px;font-size:14px;line-height:18px;}
.lvinv-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.lvinv-form-grid .wide{grid-column:1/-1;}
.lvinv-form-grid label{display:grid;gap:6px;font-size:11px;font-weight:720;color:#8E8E8E;}
.lvinv-snapshot{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;}
.lvinv-snap{border:1px solid #EFEFEF;background:#FAFAFA;border-radius:16px;padding:10px;}
.lvinv-snap span{display:block;font-size:10px;color:#999;}
.lvinv-snap strong{display:block;margin-top:3px;font-size:18px;line-height:22px;font-variant-numeric:tabular-nums;}
.lvinv-ledger{display:grid;gap:6px;}
.lvinv-ledger-row{display:grid;grid-template-columns:90px 88px 64px 70px 70px minmax(0,1fr);gap:8px;align-items:center;min-height:34px;border:1px solid #F0F0F0;border-radius:14px;padding:0 9px;font-size:11px;color:#666;}
.lvinv-modal{position:fixed;left:50%;top:50%;z-index:10002;transform:translate(-50%,-50%);width:min(720px,92vw);max-height:86vh;overflow:auto;background:#fff;border:1px solid #E6E6E6;border-radius:28px;box-shadow:0 24px 70px rgba(0,0,0,.16);}
.lvinv-modal-head{padding:20px 22px 14px;border-bottom:1px solid #EFEFEF;display:flex;align-items:flex-start;justify-content:space-between;gap:14px;}
.lvinv-modal-head h2{margin:0;font-size:22px;line-height:28px;letter-spacing:-.03em;}
.lvinv-modal-head p{margin:5px 0 0;font-size:12px;color:#999;}
.lvinv-modal-body{padding:18px 22px;}
.lvinv-modal-foot{padding:14px 22px 18px;border-top:1px solid #EFEFEF;display:flex;justify-content:flex-end;gap:10px;}
.lvinv-empty{min-height:160px;border:1px dashed #E8E8E8;border-radius:24px;display:flex;align-items:center;justify-content:center;color:#999;font-size:13px;}
@media (max-width:1220px){.lvinv-header{display:grid}.lvinv-actions{justify-content:flex-start;flex-wrap:wrap}.lvinv-kpis{grid-template-columns:repeat(2,1fr)}.lvinv-searchline{grid-template-columns:1fr}.lvinv-page{padding:28px 26px 70px}}
@media (max-width:760px){.lvinv-kpis{grid-template-columns:1fr}.lvinv-form-grid,.lvinv-snapshot{grid-template-columns:1fr}.lvinv-page{padding:22px 16px 60px}}

/* v273: Inventory table no horizontal Excel-scroll; hidden columns become expandable row details */
.lvinv-table-wrap{
  overflow:visible !important;
  scrollbar-width:none !important;
}
.lvinv-table-wrap::-webkit-scrollbar{display:none !important;}
.lvinv-table{
  min-width:0 !important;
  width:100% !important;
  display:grid;
  gap:8px;
}
.lvinv-table-head{
  display:grid;
  grid-template-columns:34px minmax(0,.9fr) minmax(0,1.55fr) minmax(0,1.08fr) minmax(78px,.55fr) minmax(78px,.55fr) minmax(88px,.62fr) minmax(180px,auto) 42px;
  gap:10px;
  align-items:center;
  min-height:34px;
  border:1px solid #F0F0F0;
  border-radius:999px;
  background:#FAFAFA;
  color:#A0A0A0;
  font-size:10px;
  font-weight:760;
  letter-spacing:.04em;
  padding:0 10px;
  box-sizing:border-box;
}
.lvinv-row-card{
  border:1px solid #EFEFEF;
  border-radius:20px;
  background:#fff;
  overflow:hidden;
  transition:background .15s ease,border-color .15s ease,box-shadow .15s ease;
}
.lvinv-row-card:hover{
  border-color:#E1E1E1;
  box-shadow:0 8px 18px rgba(0,0,0,.018);
}
.lvinv-row-card.is-low{background:linear-gradient(180deg,#fff 0%,#fff 64%,#FFFDF8 100%);}
.lvinv-row-card.is-out{background:linear-gradient(180deg,#fff 0%,#fff 64%,#FFF7EF 100%);}
.lvinv-row-card.is-expanded{
  border-color:#E6E6E6;
  box-shadow:0 10px 24px rgba(0,0,0,.02);
}
.lvinv-row-summary{
  width:100%;
  grid-template-columns:34px minmax(0,.9fr) minmax(0,1.55fr) minmax(0,1.08fr) minmax(78px,.55fr) minmax(78px,.55fr) minmax(88px,.62fr) minmax(180px,auto) 42px !important;
  min-height:64px;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  padding:8px 10px !important;
  cursor:pointer;
}
.lvinv-row-summary:hover{
  background:rgba(0,0,0,.012) !important;
  box-shadow:none !important;
}
.lvinv-row-summary .lvinv-main.soft strong{font-weight:690;color:#666;}
.lvinv-row-summary .lvinv-main.metric strong{
  font-size:13px;
  line-height:18px;
  font-variant-numeric:tabular-nums;
  text-align:right;
}
.lvinv-row-summary .lvinv-main.metric em{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  min-height:18px;
}
.lvinv-row-summary .lvinv-cell.actions{
  justify-content:flex-end;
  gap:5px;
  flex-wrap:wrap;
}
.lvinv-row-summary .lvinv-cell.actions .lvinv-mini-btn{height:24px;padding:0 7px;}
.lvinv-expand-btn{
  height:28px;
  border-radius:999px;
  border:1px solid #E8E8E8;
  background:#fff;
  color:#666;
  font-size:10px;
  font-weight:760;
  cursor:pointer;
  white-space:nowrap;
}
.lvinv-expand-btn:hover{background:#F8FBEE;border-color:#DDE9B6;color:#171717;}
.lvinv-row-card.is-expanded .lvinv-expand-btn{background:#171717;border-color:#171717;color:#fff;}
.lvinv-row-details{
  border-top:1px solid #F0F0F0;
  background:linear-gradient(180deg,#fff 0%,#FCFCFB 100%);
  padding:12px 14px 14px 54px;
  display:grid;
  gap:10px;
}
.lvinv-row-detail-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:8px;
}
.lvinv-row-detail-card{
  border:1px solid #EFEFEF;
  background:#fff;
  border-radius:15px;
  padding:9px 11px;
  min-height:54px;
  box-sizing:border-box;
  min-width:0;
}
.lvinv-row-detail-card span,
.lvinv-row-note span{
  display:block;
  font-size:10px;
  line-height:14px;
  color:#9A9A9A;
  font-weight:720;
  margin-bottom:4px;
}
.lvinv-row-detail-card strong,
.lvinv-row-note strong{
  display:block;
  min-width:0;
  font-size:12px;
  line-height:17px;
  color:#333;
  font-weight:680;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.lvinv-row-detail-card.money strong{font-variant-numeric:tabular-nums;color:#171717;font-weight:760;}
.lvinv-row-note{
  border:1px solid #EFEFEF;
  background:#fff;
  border-radius:15px;
  padding:10px 12px;
}
.lvinv-row-note strong{white-space:normal;}
@media (max-width:1120px){
  .lvinv-table-head{display:none;}
  .lvinv-row-summary{grid-template-columns:30px minmax(0,1fr) minmax(0,1.35fr) 84px 84px 42px !important;}
  .lvinv-row-summary>.lvinv-main.soft,
  .lvinv-row-summary>.lvinv-main.metric:nth-of-type(4),
  .lvinv-row-summary>.lvinv-cell.actions{display:none;}
  .lvinv-row-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .lvinv-row-details{padding-left:44px;}
}
@media (max-width:760px){
  .lvinv-row-summary{grid-template-columns:28px minmax(0,1fr) 78px 38px !important;}
  .lvinv-row-summary>.lvinv-main:nth-of-type(2),
  .lvinv-row-summary>.lvinv-main.soft,
  .lvinv-row-summary>.lvinv-main.metric:nth-of-type(2),
  .lvinv-row-summary>.lvinv-main.metric:nth-of-type(3),
  .lvinv-row-summary>.lvinv-cell.actions{display:none;}
  .lvinv-row-detail-grid{grid-template-columns:1fr;}
  .lvinv-row-details{padding:10px 12px 12px;}
}

/* v274: supply-chain level inventory editor + cleaner interaction */
.lvinv-page{max-width:1580px;padding-left:56px;padding-right:56px;}
.lvinv-header p{max-width:860px;}
.lvinv-kpis{grid-template-columns:repeat(4,minmax(0,1fr));}
.lvinv-kpi{min-height:96px;padding:19px 20px;border-radius:24px;}
.lvinv-toolbar{padding:16px 16px 14px;border-radius:30px;}
.lvinv-filters select{min-width:142px;height:34px;border-radius:999px;padding:0 14px;background:#fff;font-size:11.5px;color:#5f5f5f;}
.lvinv-board{padding:20px 20px 22px;border-radius:32px;}
.lvinv-board-title h2{font-size:22px;line-height:28px;}
.lvinv-table-head{grid-template-columns:34px minmax(0,.92fr) minmax(0,1.5fr) minmax(0,1.05fr) minmax(84px,.58fr) minmax(90px,.64fr) minmax(90px,.62fr) minmax(190px,auto) 46px;}
.lvinv-row-summary{grid-template-columns:34px minmax(0,.92fr) minmax(0,1.5fr) minmax(0,1.05fr) minmax(84px,.58fr) minmax(90px,.64fr) minmax(90px,.62fr) minmax(190px,auto) 46px !important;min-height:68px;}
.lvinv-row-summary .lvinv-main.metric strong{text-align:left;}
.lvinv-row-summary .lvinv-main.metric em{justify-content:flex-start;}
.lvinv-row-detail-grid{grid-template-columns:repeat(5,minmax(0,1fr));}
.lvinv-row-detail-card{min-height:60px;}
.lvinv-row-detail-card strong{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;}
.lvinv-editor-drawer{width:min(920px,92vw);}
.lvinv-drawer-head{padding:24px 26px 17px;background:rgba(255,255,255,.96);position:sticky;top:0;z-index:2;}
.lvinv-drawer-head h2{font-size:26px;line-height:32px;}
.lvinv-drawer-body{padding:18px 26px 26px;gap:14px;background:#FBFBFA;}
.lvinv-editor-drawer .lvinv-modal-foot{position:sticky;bottom:0;background:rgba(255,255,255,.96);backdrop-filter:blur(12px);z-index:2;}
.lvinv-editor-intro{border:1px solid #E8E8E8;background:#fff;border-radius:22px;padding:14px 16px;display:flex;align-items:flex-start;justify-content:space-between;gap:18px;}
.lvinv-editor-intro strong{font-size:13px;line-height:18px;font-weight:780;color:#171717;}
.lvinv-editor-intro span{font-size:12px;line-height:20px;color:#888;max-width:560px;}
.lvinv-section-card{border:1px solid #E8E8E8;background:#fff;border-radius:24px;padding:16px;box-shadow:0 8px 22px rgba(0,0,0,.012);}
.lvinv-section-card.compact{padding:17px;}
.lvinv-section-card h3{margin:0 0 14px;font-size:14px;line-height:20px;font-weight:780;color:#171717;display:flex;align-items:center;justify-content:space-between;gap:12px;}
.lvinv-section-card h3 em{font-style:normal;font-size:11px;line-height:16px;font-weight:650;color:#A0A0A0;}
.lvinv-form-grid{gap:13px 14px;}
.lvinv-form-grid label{font-size:11px;font-weight:760;color:#8C8C8C;}
.lvinv-form-grid label>span{display:flex;align-items:center;gap:4px;}
.lvinv-form-grid label b{color:#A8562D;font-weight:900;font-size:12px;}
.lvinv-input,.lvinv-select{height:46px;border-radius:20px;font-size:13px;font-weight:650;}
.lvinv-textarea{min-height:126px;border-radius:20px;font-size:13px;font-weight:620;}
.lvinv-helper{margin:12px 0 0;border:1px solid #EEF2D4;background:#F8FBEE;border-radius:16px;padding:10px 12px;color:#6F714A;font-size:11.5px;line-height:19px;}
.lvinv-formula-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:12px;}
.lvinv-formula-strip span{border:1px solid #EFEFEF;background:#FAFAFA;border-radius:16px;padding:10px 12px;font-size:11px;color:#8A8A8A;line-height:16px;}
.lvinv-formula-strip b{display:block;margin-top:3px;font-size:17px;line-height:22px;color:#171717;font-variant-numeric:tabular-nums;}
.lvinv-modal{width:min(760px,92vw);border-radius:30px;max-height:88vh;overflow:hidden;display:flex;flex-direction:column;}
.lvinv-modal-head{padding:21px 24px 15px;}
.lvinv-modal-body{padding:18px 24px;overflow:auto;background:#FBFBFA;}
.lvinv-modal-foot{padding:15px 24px 19px;background:#fff;}
.lvinv-ledger-row{grid-template-columns:90px 94px 60px 70px 70px minmax(0,1fr);min-height:38px;background:#fff;}
.lvinv-batch{z-index:10004;}
@media (max-width:1280px){.lvinv-row-detail-grid{grid-template-columns:repeat(3,minmax(0,1fr));}.lvinv-actions{flex-wrap:wrap;}.lvinv-editor-drawer{width:min(860px,94vw);}}
@media (max-width:900px){.lvinv-formula-strip{grid-template-columns:repeat(2,minmax(0,1fr));}.lvinv-editor-intro{display:grid}.lvinv-row-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (max-width:760px){.lvinv-page{padding-left:16px;padding-right:16px}.lvinv-kpis{grid-template-columns:1fr}.lvinv-formula-strip{grid-template-columns:1fr}.lvinv-editor-drawer{width:100vw}.lvinv-row-detail-grid{grid-template-columns:1fr}.lvinv-modal{width:96vw}}

/* v275: selection boxes are now behind an explicit selection layer */
.lvinv-board-tools{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  flex-wrap:wrap;
  min-width:max-content;
}
.lvinv-board-tools .lvinv-btn{
  height:30px;
  padding:0 12px;
  font-size:11px;
}
.lvinv-board:not(.is-selecting) .lvinv-table-head{
  grid-template-columns:minmax(0,.92fr) minmax(0,1.5fr) minmax(0,1.05fr) minmax(84px,.58fr) minmax(90px,.64fr) minmax(90px,.62fr) minmax(190px,auto) 46px !important;
}
.lvinv-board:not(.is-selecting) .lvinv-table-head>div:first-child{
  display:none !important;
}
.lvinv-board:not(.is-selecting) .lvinv-row-summary{
  grid-template-columns:minmax(0,.92fr) minmax(0,1.5fr) minmax(0,1.05fr) minmax(84px,.58fr) minmax(90px,.64fr) minmax(90px,.62fr) minmax(190px,auto) 46px !important;
}
.lvinv-board:not(.is-selecting) .lvinv-check{
  display:none !important;
}
.lvinv-board.is-selecting .lvinv-row-card{
  border-color:#E7E7E7;
}
.lvinv-board.is-selecting .lvinv-row-card:has(input:checked){
  border-color:#DDE9B6;
  background:linear-gradient(180deg,#fff 0%,#fff 72%,#F8FBEE 100%);
}
.lvinv-board.is-selecting .lvinv-check input{
  width:15px;
  height:15px;
}
@media (max-width:1120px){
  .lvinv-board:not(.is-selecting) .lvinv-row-summary{grid-template-columns:minmax(0,1fr) minmax(0,1.35fr) 84px 84px 42px !important;}
  .lvinv-board:not(.is-selecting) .lvinv-row-details{padding-left:14px;}
}
@media (max-width:760px){
  .lvinv-board:not(.is-selecting) .lvinv-row-summary{grid-template-columns:minmax(0,1fr) 78px 38px !important;}
  .lvinv-board-tools{justify-content:flex-start;min-width:0;}
}


/* ==== lovix-select-polish.css ==== */
/* ======================================================================
   Lovix v272 · Global dropdown polish
   Purpose: remove browser/Excel-looking native select popups across pages.
   Scope: native <select> controls in pages, drawers, and modals; does not touch AppSidebar/navigation.
   ====================================================================== */

select.lvx-native-select-hidden{
  position:absolute !important;
  opacity:0 !important;
  pointer-events:none !important;
  width:1px !important;
  height:1px !important;
  min-width:1px !important;
  min-height:1px !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  clip:rect(0 0 0 0) !important;
  clip-path:inset(50%) !important;
}

.lvx-select-shell{
  position:relative;
  display:inline-flex;
  align-items:stretch;
  vertical-align:top;
  min-width:126px;
  max-width:100%;
  z-index:1;
  font-family:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
.lvx-select-shell.is-block{
  display:flex;
  width:100%;
  min-width:0;
}
.lvx-select-shell.is-open{z-index:2147483601;}

.lvx-select-btn{
  width:100%;
  min-width:0;
  height:40px;
  min-height:40px;
  border-radius:999px;
  border:1px solid #E6E6E6;
  background:#FFFFFF;
  color:#5E5E5E;
  padding:0 13px 0 15px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  cursor:pointer;
  box-sizing:border-box;
  font-size:12px;
  line-height:1;
  font-weight:650;
  letter-spacing:-.01em;
  text-align:left;
  box-shadow:none;
  outline:none;
  transition:border-color .14s ease, background-color .14s ease, color .14s ease, box-shadow .14s ease, transform .14s ease;
}
.lvx-select-shell.is-compact .lvx-select-btn{
  height:32px;
  min-height:32px;
  padding-left:13px;
  padding-right:10px;
  font-size:11.5px;
  font-weight:720;
}
.lvx-select-shell.is-field .lvx-select-btn,
.lvx-select-shell.is-block .lvx-select-btn{
  height:42px;
  min-height:42px;
  border-radius:18px;
  padding-left:16px;
  padding-right:13px;
  color:#171717;
  font-size:13px;
  font-weight:560;
}
.lvx-select-shell.is-open .lvx-select-btn,
.lvx-select-btn:hover{
  border-color:#DDE9B6;
  background:#FBFCF7;
  color:#3D4812;
}
.lvx-select-btn:focus-visible{
  outline:2px solid #D7F24A;
  outline-offset:2px;
}
.lvx-select-btn:disabled{
  cursor:not-allowed;
  opacity:.58;
  background:#F8F8F8;
}
.lvx-select-value{
  flex:1 1 auto;
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.lvx-select-arrow{
  flex:0 0 16px;
  width:16px;
  height:16px;
  position:relative;
  opacity:.82;
}
.lvx-select-arrow::before{
  content:"";
  position:absolute;
  left:4px;
  top:3px;
  width:7px;
  height:7px;
  border-right:1.7px solid currentColor;
  border-bottom:1.7px solid currentColor;
  transform:rotate(45deg);
  transform-origin:center;
  transition:transform .14s ease, top .14s ease;
}
.lvx-select-shell.is-open .lvx-select-arrow::before{
  top:6px;
  transform:rotate(-135deg);
}

.lvx-select-popover{
  position:fixed;
  z-index:2147483600;
  display:none;
  box-sizing:border-box;
  padding:7px;
  border-radius:18px;
  border:1px solid #E7E7E7;
  background:#FFFFFF;
  box-shadow:0 18px 48px rgba(0,0,0,.10);
  max-height:272px;
  overflow:auto;
  scrollbar-width:none;
  overscroll-behavior:contain;
  font-family:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
.lvx-select-popover::-webkit-scrollbar{display:none;}
.lvx-select-popover.is-open{display:block;}
.lvx-select-option{
  width:100%;
  min-height:34px;
  border:0;
  background:transparent;
  color:#606060;
  border-radius:12px;
  padding:8px 10px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  cursor:pointer;
  box-sizing:border-box;
  font-size:12px;
  line-height:16px;
  font-weight:560;
  letter-spacing:-.01em;
  text-align:left;
  white-space:normal;
}
.lvx-select-option:hover,
.lvx-select-option.is-hover{
  background:#FBFCF7;
  color:#3D4812;
}
.lvx-select-option.is-active{
  background:#171717;
  color:#FFFFFF;
}
.lvx-select-option.is-disabled{
  cursor:not-allowed;
  opacity:.44;
}
.lvx-select-check{
  flex:0 0 auto;
  width:16px;
  height:16px;
  border-radius:999px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:11px;
  line-height:1;
  opacity:0;
}
.lvx-select-option.is-active .lvx-select-check{opacity:1;}

/* Inventory toolbar and modal select rhythm */
.lvinv-filters .lvx-select-shell{
  flex:0 0 auto;
}
.lvinv-filters .lvx-select-btn{
  height:34px;
  min-height:34px;
}
.lvinv-modal .lvx-select-shell,
.lvinv-drawer .lvx-select-shell,
.lvinv-form-grid label .lvx-select-shell{
  width:100%;
}

/* Export / settings style dropdowns produced by the base app */
main .lvx-select-shell.is-field .lvx-select-btn,
[role="main"] .lvx-select-shell.is-field .lvx-select-btn{
  border-radius:18px;
}


/* Drawer/modal audit v272: Inventory, Spark Pool, and Today Tasks form fields */
.lvinv-drawer .lvx-select-shell,
.lvinv-modal .lvx-select-shell,
.lvsp-drawer .lvx-select-shell,
.lvsp-modal .lvx-select-shell,
.lvdc-modal .lvx-select-shell{
  width:100%;
}
.lvinv-drawer .lvx-select-btn,
.lvinv-modal .lvx-select-btn,
.lvsp-drawer .lvx-select-btn,
.lvsp-modal .lvx-select-btn,
.lvdc-modal .lvx-select-btn{
  height:42px;
  min-height:42px;
  border-radius:18px;
  background:#FFFFFF;
  border-color:#E6E6E6;
  color:#171717;
  font-size:13px;
  font-weight:560;
}
.lvinv-drawer .lvx-select-shell.is-open .lvx-select-btn,
.lvinv-modal .lvx-select-shell.is-open .lvx-select-btn,
.lvsp-drawer .lvx-select-shell.is-open .lvx-select-btn,
.lvsp-modal .lvx-select-shell.is-open .lvx-select-btn,
.lvdc-modal .lvx-select-shell.is-open .lvx-select-btn{
  border-color:#DDE9B6;
  box-shadow:0 0 0 2px rgba(207,220,40,.18);
}

/* Fallback while a just-mounted drawer is being scanned: never show blue native styling. */
main select:not(.lvx-native-select-hidden),
[role="main"] select:not(.lvx-native-select-hidden),
.lvinv-drawer select:not(.lvx-native-select-hidden),
.lvinv-modal select:not(.lvx-native-select-hidden),
.lvsp-drawer select:not(.lvx-native-select-hidden),
.lvsp-modal select:not(.lvx-native-select-hidden),
.lvdc-modal select:not(.lvx-native-select-hidden){
  appearance:none;
  -webkit-appearance:none;
}

@media (max-width: 920px){
  .lvx-select-popover{max-height:220px;}
}


/* ==== lovix-file-date-audit.css ==== */
/* ======================================================================
   Lovix v276 · Upload / download / date-field audit polish
   Scope: visible native file inputs + all native date inputs in pages,
   drawers, and modals. Keeps AppSidebar and globe screen untouched.
   ====================================================================== */

:root{
  --lvx-field-border:#E6E6E6;
  --lvx-field-border-soft:#EFEFEF;
  --lvx-field-text:#171717;
  --lvx-field-muted:#8F8F8F;
  --lvx-field-soft:#A0A0A0;
  --lvx-field-lime:#CFDC28;
  --lvx-field-lime-soft:#F8FBEE;
  --lvx-field-yellow-soft:#FFFDF0;
}

/* Last-line fallback: if a newly mounted file input appears before JS wraps it,
   remove the Windows/Excel default button look immediately. */
main input[type="file"]:not(.lvx-native-file-hidden)::file-selector-button,
[role="main"] input[type="file"]:not(.lvx-native-file-hidden)::file-selector-button,
.lvsp-modal input[type="file"]:not(.lvx-native-file-hidden)::file-selector-button,
.lvinv-modal input[type="file"]:not(.lvx-native-file-hidden)::file-selector-button,
.lvinv-drawer input[type="file"]:not(.lvx-native-file-hidden)::file-selector-button{
  height:34px;
  margin:0 12px 0 0;
  padding:0 14px;
  border:1px solid var(--lvx-field-border);
  border-radius:999px;
  background:#FFFFFF;
  color:var(--lvx-field-text);
  font-size:12px;
  font-weight:700;
  cursor:pointer;
  box-shadow:none;
}

.lvx-native-file-hidden{
  position:absolute !important;
  opacity:0 !important;
  pointer-events:none !important;
  width:1px !important;
  height:1px !important;
  min-width:1px !important;
  min-height:1px !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  clip:rect(0 0 0 0) !important;
  clip-path:inset(50%) !important;
}

.lvx-file-shell{
  width:100%;
  min-height:70px;
  box-sizing:border-box;
  border:1px dashed #DCDCDC;
  border-radius:22px;
  background:linear-gradient(180deg,#FFFFFF 0%,#FCFCFB 100%);
  display:flex;
  align-items:center;
  gap:13px;
  padding:14px 15px;
  cursor:pointer;
  color:var(--lvx-field-text);
  transition:border-color .16s ease, background-color .16s ease, box-shadow .16s ease, transform .16s ease;
  outline:none;
}
.lvx-file-shell:hover,
.lvx-file-shell.is-dragover{
  border-color:#DDE9B6;
  background:linear-gradient(180deg,#FFFFFF 0%,#FBFCF7 100%);
  box-shadow:0 10px 26px rgba(0,0,0,.035);
}
.lvx-file-shell:focus-visible{
  outline:2px solid #D7F24A;
  outline-offset:2px;
}
.lvx-file-icon{
  flex:0 0 auto;
  width:42px;
  height:42px;
  border-radius:17px;
  border:1px solid var(--lvx-field-border);
  background:#FFFFFF;
  display:flex;
  align-items:center;
  justify-content:center;
  color:#666;
  box-shadow:0 8px 18px rgba(0,0,0,.025);
}
.lvx-file-icon svg{
  width:19px;
  height:19px;
  display:block;
}
.lvx-file-copy{
  min-width:0;
  flex:1 1 auto;
}
.lvx-file-title{
  display:block;
  font-size:13px;
  line-height:18px;
  font-weight:720;
  color:var(--lvx-field-text);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.lvx-file-sub{
  display:block;
  margin-top:3px;
  font-size:11px;
  line-height:16px;
  font-weight:560;
  color:var(--lvx-field-muted);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.lvx-file-action{
  flex:0 0 auto;
  height:32px;
  padding:0 12px;
  border-radius:999px;
  border:1px solid var(--lvx-field-border);
  background:#FFFFFF;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:11px;
  line-height:1;
  font-weight:760;
  color:#454545;
}
.lvx-file-shell.has-files{
  border-style:solid;
  border-color:#DDE9B6;
  background:#FBFCF7;
}
.lvx-file-shell.has-files .lvx-file-icon{
  background:#F8FBEE;
  border-color:#DDE9B6;
  color:#3D4812;
}
.lvx-file-shell.has-files .lvx-file-action{
  background:#171717;
  border-color:#171717;
  color:#FFFFFF;
}
.lvx-file-shell.is-compact{
  min-height:58px;
  border-radius:19px;
  padding:10px 12px;
}
.lvx-file-shell.is-compact .lvx-file-icon{
  width:36px;
  height:36px;
  border-radius:15px;
}

/* Date fields: remove native browser picker surface and use Lovix popover. */
.lvx-date-field{
  position:relative !important;
}
input.lvx-date-input{
  appearance:none !important;
  -webkit-appearance:none !important;
  background:#FFFFFF !important;
  color:var(--lvx-field-text) !important;
  padding-right:44px !important;
  cursor:pointer !important;
  font-variant-numeric:tabular-nums;
}
input.lvx-date-input::-webkit-calendar-picker-indicator{
  opacity:0 !important;
  display:none !important;
  pointer-events:none !important;
}
input.lvx-date-input::-webkit-date-and-time-value{
  text-align:left;
}
.lvx-date-trigger{
  position:absolute !important;
  right:11px !important;
  bottom:9px !important;
  width:26px !important;
  height:26px !important;
  border:0 !important;
  border-radius:999px !important;
  background:transparent !important;
  color:#6E6E6E !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  padding:0 !important;
  cursor:pointer !important;
  z-index:3 !important;
  transition:background-color .14s ease,color .14s ease;
}
.lvx-date-trigger:hover{
  background:#F6F6F6 !important;
  color:#171717 !important;
}
.lvx-date-trigger svg{
  width:15px !important;
  height:15px !important;
  display:block !important;
}
.lvx-date-popover{
  position:fixed;
  z-index:2147483620;
  width:292px;
  box-sizing:border-box;
  border:1px solid #E8E8E8;
  border-radius:22px;
  background:#FFFFFF;
  box-shadow:0 22px 58px rgba(0,0,0,.13);
  padding:12px;
  display:none;
  font-family:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color:#171717;
}
.lvx-date-popover.is-open{display:block;}
.lvx-date-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  margin-bottom:10px;
}
.lvx-date-title{
  flex:1 1 auto;
  min-width:0;
  height:34px;
  padding:0 10px;
  border-radius:14px;
  background:#FAFAFA;
  border:1px solid #F0F0F0;
  display:flex;
  align-items:center;
  font-size:13px;
  line-height:1;
  font-weight:760;
  letter-spacing:-.01em;
}
.lvx-date-nav{
  width:34px;
  height:34px;
  border-radius:14px;
  border:1px solid #EDEDED;
  background:#FFFFFF;
  color:#444;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:16px;
  line-height:1;
}
.lvx-date-nav:hover{background:#FBFCF7;border-color:#DDE9B6;color:#3D4812;}
.lvx-date-week,
.lvx-date-grid{
  display:grid;
  grid-template-columns:repeat(7,1fr);
  gap:5px;
}
.lvx-date-week span{
  height:24px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:11px;
  line-height:1;
  font-weight:700;
  color:#A0A0A0;
}
.lvx-date-day{
  height:32px;
  border:0;
  border-radius:12px;
  background:transparent;
  color:#333;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:12px;
  font-weight:650;
  cursor:pointer;
}
.lvx-date-day:hover{
  background:#FBFCF7;
  color:#3D4812;
}
.lvx-date-day.is-outside{color:#B8B8B8;font-weight:560;}
.lvx-date-day.is-today{box-shadow:inset 0 0 0 1px #DDE9B6;background:#FEFFF7;}
.lvx-date-day.is-selected{background:#171717;color:#FFFFFF;box-shadow:none;}
.lvx-date-foot{
  margin-top:10px;
  padding-top:10px;
  border-top:1px solid #F0F0F0;
  display:flex;
  justify-content:space-between;
  align-items:center;
}
.lvx-date-foot button{
  height:30px;
  border:0;
  background:transparent;
  border-radius:999px;
  padding:0 10px;
  color:#6D6D6D;
  font-size:12px;
  font-weight:700;
  cursor:pointer;
}
.lvx-date-foot button:hover{background:#F6F6F6;color:#171717;}
.lvx-date-foot button[data-lvx-date-today]{background:#171717;color:#FFFFFF;}

/* Make export/import/downloading action rows feel like Lovix cards instead of spreadsheet controls. */
.lvsp-modal .lvsp-hint,
.lvinv-modal .lvinv-section-card textarea[readonly]{
  border-radius:18px !important;
  border-color:#EFEFEF !important;
  background:#FCFCFB !important;
}
.lvsp-modal footer .lvsp-btn,
.lvinv-modal-foot .lvinv-btn,
.lvinv-drawer footer .lvinv-btn{
  border-radius:999px !important;
}

@media (max-width:760px){
  .lvx-file-shell{align-items:flex-start;padding:13px;}
  .lvx-file-action{display:none;}
  .lvx-date-popover{width:min(292px, calc(100vw - 24px));}
}


/* ==== lovix-suppliers-row-card-fix.css ==== */

/* ==========================================================================
   Lovix v280 · Supplier true row-card fix
   Scope: /suppliers-preview only
   Fixes the bad v279 result: do NOT shrink the whole left board.
   Keep the left board full-width, remove empty grey-field feeling by making
   each supplier a wide horizontal compact row card.
   ========================================================================== */

.supplier-page-scope.lvsup-rowfix{
  --lvsr-border:#E6E6E6;
  --lvsr-border-soft:#EEECE7;
  --lvsr-bg:#FFFFFF;
  --lvsr-soft:#F9F9F9;
  --lvsr-soft-2:#FAFAF8;
  --lvsr-text:#171717;
  --lvsr-muted:#8B8B8B;
  --lvsr-faint:#A6A6A6;
}

/* restore normal two-column page layout: main board gets width; right board stays 350px */
@media (min-width:1280px){
  .supplier-page-scope.lvsup-rowfix .lvsr-page-grid{
    grid-template-columns:minmax(0, 1fr) 350px !important;
    justify-content:stretch !important;
    align-items:start !important;
  }
}

/* left board is full width again, not a weird narrow island */
.supplier-page-scope.lvsup-rowfix .lvsr-main-board{
  width:100% !important;
  max-width:none !important;
  border-radius:28px !important;
  box-shadow:none !important;
  background:#FFFFFF !important;
  overflow:hidden !important;
}

/* no giant filler area: row list, not card-island grid */
.supplier-page-scope.lvsup-rowfix .lvsr-main-list{
  display:grid !important;
  grid-template-columns:1fr !important;
  gap:12px !important;
  padding:14px !important;
  background:#FFFFFF !important;
  min-height:0 !important;
  width:100% !important;
}

/* TRUE landscape supplier card */
.supplier-page-scope.lvsup-rowfix .lvsr-card{
  width:100% !important;
  max-width:none !important;
  flex:initial !important;
  border-radius:22px !important;
  border-color:var(--lvsr-border-soft) !important;
  background:#FFFFFF !important;
  box-shadow:none !important;
  padding:16px !important;
}

.supplier-page-scope.lvsup-rowfix .lvsr-card:hover{
  background:#FCFCF9 !important;
  border-color:#DEE7C2 !important;
}

/* convert inner vertical stack into compact horizontal row-card layout */
.supplier-page-scope.lvsup-rowfix .lvsr-card-body{
  display:grid !important;
  grid-template-columns:minmax(240px, 1.05fr) minmax(210px, .9fr) minmax(230px, .95fr) !important;
  grid-template-areas:
    "head stats contact"
    "chips stats contact"
    "desc desc footer" !important;
  column-gap:16px !important;
  row-gap:10px !important;
  align-items:start !important;
}

.supplier-page-scope.lvsup-rowfix .lvsr-head{ grid-area:head !important; }
.supplier-page-scope.lvsup-rowfix .lvsr-chips{ grid-area:chips !important; }
.supplier-page-scope.lvsup-rowfix .lvsr-stats{ grid-area:stats !important; }
.supplier-page-scope.lvsup-rowfix .lvsr-contact{ grid-area:contact !important; }
.supplier-page-scope.lvsup-rowfix .lvsr-desc{ grid-area:desc !important; }
.supplier-page-scope.lvsup-rowfix .lvsr-footer{ grid-area:footer !important; }

.supplier-page-scope.lvsup-rowfix .lvsr-head{
  gap:10px !important;
}

.supplier-page-scope.lvsup-rowfix .lvsr-avatar{
  width:42px !important;
  height:42px !important;
  border-radius:14px !important;
  font-size:15px !important;
  background:var(--lvsr-soft) !important;
}

.supplier-page-scope.lvsup-rowfix .lvsr-name{
  font-size:14px !important;
  line-height:18px !important;
  font-weight:650 !important;
}

.supplier-page-scope.lvsup-rowfix .lvsr-meta{
  margin-top:4px !important;
  gap:1px 6px !important;
  font-size:10.5px !important;
  line-height:15px !important;
}

.supplier-page-scope.lvsup-rowfix .lvsr-status{
  height:26px !important;
  padding:0 9px !important;
  border-radius:999px !important;
  font-size:10px !important;
}

.supplier-page-scope.lvsup-rowfix .lvsr-chips{
  margin-top:0 !important;
  gap:6px !important;
}

.supplier-page-scope.lvsup-rowfix .lvsr-chips > span{
  height:24px !important;
  padding:0 8px !important;
  border-radius:999px !important;
  font-size:9.5px !important;
}

.supplier-page-scope.lvsup-rowfix .lvsr-stats{
  margin-top:0 !important;
  gap:8px !important;
  align-self:stretch !important;
}

.supplier-page-scope.lvsup-rowfix .lvsr-stats > div{
  border-radius:15px !important;
  padding:8px 10px !important;
  background:var(--lvsr-soft) !important;
}

.supplier-page-scope.lvsup-rowfix .lvsr-stats > div > div:first-child{
  font-size:8px !important;
  line-height:11px !important;
  letter-spacing:.14em !important;
  color:var(--lvsr-faint) !important;
}

.supplier-page-scope.lvsup-rowfix .lvsr-stats > div > div:last-child{
  margin-top:4px !important;
  font-size:11px !important;
  line-height:14px !important;
}

.supplier-page-scope.lvsup-rowfix .lvsr-contact{
  margin-top:0 !important;
  border-radius:18px !important;
  padding:10px 12px !important;
  background:var(--lvsr-soft) !important;
  align-self:stretch !important;
}

.supplier-page-scope.lvsup-rowfix .lvsr-contact-label{
  font-size:9px !important;
  line-height:11px !important;
  letter-spacing:.16em !important;
}

.supplier-page-scope.lvsup-rowfix .lvsr-contact-name{
  margin-top:5px !important;
  font-size:11px !important;
  line-height:14px !important;
}

.supplier-page-scope.lvsup-rowfix .lvsr-contact-note{
  margin-top:4px !important;
  font-size:10px !important;
  line-height:16px !important;
  -webkit-line-clamp:2 !important;
}

.supplier-page-scope.lvsup-rowfix .lvsr-desc{
  margin-top:0 !important;
  min-height:0 !important;
  font-size:10px !important;
  line-height:16px !important;
  -webkit-line-clamp:2 !important;
}

.supplier-page-scope.lvsup-rowfix .lvsr-footer{
  margin-top:0 !important;
  align-self:end !important;
}

.supplier-page-scope.lvsup-rowfix .lvsr-footer-note{
  font-size:9.5px !important;
}

.supplier-page-scope.lvsup-rowfix .lvsr-actions{
  gap:6px !important;
}

.supplier-page-scope.lvsup-rowfix .lvsr-actions button{
  width:32px !important;
  height:32px !important;
  border-radius:10px !important;
}

/* right insight board: requested light grey info blocks */
.supplier-page-scope.lvsup-rowfix .lvsr-insights{
  border-radius:28px !important;
  box-shadow:none !important;
  background:#FFFFFF !important;
}

.supplier-page-scope.lvsup-rowfix .lvsr-insight-soft,
.supplier-page-scope.lvsup-rowfix .lvsr-insight-mini,
.supplier-page-scope.lvsup-rowfix .lvsr-insight-judge{
  background:#F9F9F9 !important;
  border-color:var(--lvsr-border) !important;
}

/* Responsive: when width is not enough, stack gracefully */
@media (max-width:1380px){
  .supplier-page-scope.lvsup-rowfix .lvsr-card-body{
    grid-template-columns:minmax(230px,1fr) minmax(230px,1fr) !important;
    grid-template-areas:
      "head stats"
      "chips stats"
      "contact contact"
      "desc footer" !important;
  }
}

@media (max-width:980px){
  .supplier-page-scope.lvsup-rowfix .lvsr-card-body{
    display:flex !important;
    flex-direction:column !important;
    gap:10px !important;
  }
}


/* ==== lovix-suppliers-row-card-polish-v281.css ==== */
/* ==========================================================================
   Lovix v281 · Supplier row-card polish
   Fixes two problems from v280:
   1) remove the dead equal grey Type/Latest/Owner boxes
   2) simplify the right insights current-supplier baseplate
   ========================================================================== */

.supplier-page-scope.lvsup-rowfix{
  --lvs281-line:#ECE8E1;
  --lvs281-soft:#F9F9F9;
}

/* left card: make the middle stats area a single flat strip instead of 3 dead grey boxes */
.supplier-page-scope.lvsup-rowfix .lvsr-card-body{
  grid-template-columns:minmax(255px, 1.08fr) minmax(240px, 1fr) minmax(250px, .98fr) !important;
  grid-template-areas:
    "head stats contact"
    "chips stats contact"
    "desc desc footer" !important;
  column-gap:18px !important;
}

.supplier-page-scope.lvsup-rowfix .lvsr-stats{
  display:grid !important;
  grid-template-columns:repeat(3, minmax(0, 1fr)) !important;
  gap:0 !important;
  align-self:start !important;
  min-height:0 !important;
  border:1px solid var(--lvs281-line) !important;
  border-radius:18px !important;
  overflow:hidden !important;
  background:#FFFFFF !important;
}

.supplier-page-scope.lvsup-rowfix .lvsr-stats > div{
  background:#FFFFFF !important;
  border-radius:0 !important;
  border-right:1px solid var(--lvs281-line) !important;
  padding:12px 16px 11px !important;
  min-height:72px !important;
}

.supplier-page-scope.lvsup-rowfix .lvsr-stats > div:last-child{
  border-right:0 !important;
}

.supplier-page-scope.lvsup-rowfix .lvsr-stats > div > div:first-child{
  font-size:8.5px !important;
  line-height:11px !important;
  letter-spacing:.18em !important;
  color:#A8A29A !important;
}

.supplier-page-scope.lvsup-rowfix .lvsr-stats > div > div:last-child{
  margin-top:8px !important;
  font-size:12px !important;
  line-height:16px !important;
  color:#171717 !important;
}

/* contact box should feel like a clean info module, not a heavy block */
.supplier-page-scope.lvsup-rowfix .lvsr-contact{
  background:#FCFCFB !important;
  border:1px solid var(--lvs281-line) !important;
  padding:12px 14px !important;
}

.supplier-page-scope.lvsup-rowfix .lvsr-contact-name{
  font-size:12px !important;
}

.supplier-page-scope.lvsup-rowfix .lvsr-desc{
  color:#7F7B73 !important;
}

.supplier-page-scope.lvsup-rowfix .lvsr-footer{
  align-self:center !important;
}

/* right insights: remove the confusing giant inner baseplate */
.supplier-page-scope.lvsup-rowfix .lvsr-insight-soft{
  background:transparent !important;
  border:0 !important;
  padding:0 !important;
  border-radius:0 !important;
}

.supplier-page-scope.lvsup-rowfix .lvsr-insight-mini{
  background:var(--lvs281-soft) !important;
  border-color:var(--lvs281-line) !important;
}

.supplier-page-scope.lvsup-rowfix .lvsr-insight-judge{
  background:var(--lvs281-soft) !important;
  border-color:var(--lvs281-line) !important;
}

/* soften chips under the right board too */
.supplier-page-scope.lvsup-rowfix .lvsr-insights .h-7,
.supplier-page-scope.lvsup-rowfix .lvsr-insights span[class*='rounded-full']{
  box-shadow:none !important;
}

@media (max-width:1380px){
  .supplier-page-scope.lvsup-rowfix .lvsr-card-body{
    grid-template-columns:minmax(220px,1fr) minmax(220px,1fr) !important;
    grid-template-areas:
      "head contact"
      "chips contact"
      "stats stats"
      "desc footer" !important;
  }
  .supplier-page-scope.lvsup-rowfix .lvsr-stats{
    grid-template-columns:repeat(3, minmax(0, 1fr)) !important;
  }
}

@media (max-width:980px){
  .supplier-page-scope.lvsup-rowfix .lvsr-stats{
    grid-template-columns:1fr !important;
  }
  .supplier-page-scope.lvsup-rowfix .lvsr-stats > div{
    border-right:0 !important;
    border-bottom:1px solid var(--lvs281-line) !important;
    min-height:0 !important;
  }
  .supplier-page-scope.lvsup-rowfix .lvsr-stats > div:last-child{
    border-bottom:0 !important;
  }
}


/* ==== lovix-suppliers-row-card-polish-v282.css ==== */
/* ==========================================================================
   Lovix v282 · Supplier row-card audit fix
   Fixes user-noted problems from v281:
   1) Type / Latest / Owner should NOT be boxed, only 1px vertical dividers.
   2) Right current-supplier section should NOT look like chaotic grey slabs.
   ========================================================================== */

.supplier-page-scope.lvsup-rowfix{
  --lvs282-line:#E9E5DE;
  --lvs282-line-2:#EEEAE3;
  --lvs282-soft:#FCFCFB;
}

/* ----- LEFT ROW CARD: replace boxed stats with simple vertical-divider strip ----- */
.supplier-page-scope.lvsup-rowfix .lvsr-card-body{
  grid-template-columns:minmax(255px, 1.08fr) auto minmax(250px, .98fr) !important;
  column-gap:18px !important;
}

.supplier-page-scope.lvsup-rowfix .lvsr-stats{
  display:flex !important;
  align-items:flex-start !important;
  justify-content:flex-start !important;
  gap:0 !important;
  align-self:start !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  overflow:visible !important;
}

.supplier-page-scope.lvsup-rowfix .lvsr-stats > div{
  background:transparent !important;
  border:0 !important;
  border-left:1px solid var(--lvs282-line) !important;
  border-right:0 !important;
  border-radius:0 !important;
  padding:2px 18px 2px 18px !important;
  min-height:auto !important;
  min-width:118px !important;
}

.supplier-page-scope.lvsup-rowfix .lvsr-stats > div:first-child{
  border-left:0 !important;
  padding-left:0 !important;
}

.supplier-page-scope.lvsup-rowfix .lvsr-stats > div:last-child{
  padding-right:0 !important;
}

.supplier-page-scope.lvsup-rowfix .lvsr-stats > div > div:first-child{
  font-size:8.5px !important;
  line-height:11px !important;
  letter-spacing:.18em !important;
  color:#A8A29A !important;
}

.supplier-page-scope.lvsup-rowfix .lvsr-stats > div > div:last-child{
  margin-top:8px !important;
  font-size:12px !important;
  line-height:16px !important;
  color:#171717 !important;
}

/* keep contact area neat but lighter */
.supplier-page-scope.lvsup-rowfix .lvsr-contact{
  background:#FFFFFF !important;
  border:1px solid var(--lvs282-line) !important;
}

/* ----- RIGHT BOARD: remove chaotic grey slabs ----- */
.supplier-page-scope.lvsup-rowfix .lvs282-current-section{
  background:#FFFFFF !important;
  border:1px solid var(--lvs282-line) !important;
  border-radius:20px !important;
}

.supplier-page-scope.lvsup-rowfix .lvs282-current-stack{
  background:transparent !important;
}

/* keep the 2x2 info blocks clean and white, not grey slabs */
.supplier-page-scope.lvsup-rowfix .lvsr-insight-mini,
.supplier-page-scope.lvsup-rowfix .lvs282-mini-grid > div{
  background:#FFFFFF !important;
  border:1px solid var(--lvs282-line) !important;
  border-radius:18px !important;
}

/* cooperation/judgement box also white and clean */
.supplier-page-scope.lvsup-rowfix .lvsr-insight-judge,
.supplier-page-scope.lvsup-rowfix .lvs282-judge{
  background:#FFFFFF !important;
  border:1px solid var(--lvs282-line) !important;
  border-radius:18px !important;
}

/* neutralize the previous noisy grey background helper */
.supplier-page-scope.lvsup-rowfix .lvsr-insight-soft{
  background:transparent !important;
  border:0 !important;
  padding:0 !important;
  border-radius:0 !important;
}

/* keep chips below clean; no nested slab feeling */
.supplier-page-scope.lvsup-rowfix .lvs282-tag-group{
  background:transparent !important;
}

@media (max-width:1380px){
  .supplier-page-scope.lvsup-rowfix .lvsr-card-body{
    grid-template-columns:minmax(220px,1fr) minmax(220px,1fr) !important;
    grid-template-areas:
      "head contact"
      "chips contact"
      "stats stats"
      "desc footer" !important;
  }
}

@media (max-width:980px){
  .supplier-page-scope.lvsup-rowfix .lvsr-stats{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:8px !important;
  }
  .supplier-page-scope.lvsup-rowfix .lvsr-stats > div{
    border-left:0 !important;
    padding:0 !important;
    min-width:0 !important;
  }
}


/* ==== lovix-suppliers-v283-fixes.css ==== */
/* ==========================================================================
   Lovix v283 · Supplier page audit fixes
   1) Rebuild right current-supplier module cleanly
   2) Fix clipped contact select menus in drawer
   3) Remove preset capability tag selector row; use custom tags only
   ========================================================================== */

/* ---------- Right insights: rebuilt current supplier module ---------- */
.supplier-page-scope .lv283-current-section{
  border-radius: 22px !important;
}

.supplier-page-scope .lv283-current-section > .lv283-old-content{
  display: none !important;
}

.supplier-page-scope .lv283-current-rebuild{
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.supplier-page-scope .lv283-summary-grid{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.supplier-page-scope .lv283-summary-card{
  border: 1px solid #E8E4DD;
  border-radius: 18px;
  background: #FFFFFF;
  padding: 14px 14px 13px;
}

.supplier-page-scope .lv283-summary-label{
  font-size: 10px;
  line-height: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #A7A097;
}

.supplier-page-scope .lv283-summary-value{
  margin-top: 10px;
  font-size: 16px;
  line-height: 20px;
  font-weight: 600;
  color: #171717;
}

.supplier-page-scope .lv283-judge-box{
  border: 1px solid #E8E4DD;
  border-radius: 18px;
  background: #FFFFFF;
  padding: 14px;
}

.supplier-page-scope .lv283-subtitle{
  font-size: 10px;
  line-height: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #A7A097;
  margin-bottom: 8px;
}

.supplier-page-scope .lv283-judge-rows{
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.supplier-page-scope .lv283-judge-row{
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  font-size: 12px;
  line-height: 18px;
}

.supplier-page-scope .lv283-judge-key{
  color: #8B8B8B;
}

.supplier-page-scope .lv283-judge-val{
  color: #171717;
  font-weight: 500;
  text-align: right;
}

.supplier-page-scope .lv283-chip-group{
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.supplier-page-scope .lv283-chip-title{
  font-size: 10px;
  line-height: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #A7A097;
}

.supplier-page-scope .lv283-chip-wrap{
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.supplier-page-scope .lv283-chip{
  height: 28px;
  padding: 0 11px;
  border-radius: 999px;
  border: 1px solid #E8E4DD;
  background: #FFFFFF;
  display: inline-flex;
  align-items: center;
  font-size: 11px;
  line-height: 1;
  color: #6F6F6F;
}

/* ---------- Detail drawer ---------- */
/* allow custom select menus to escape cleanly */
.drawer-in.lv283-drawer{
  overflow: visible !important;
}

.drawer-in.lv283-drawer .lv283-drawer-body{
  overflow-y: auto !important;
  overflow-x: visible !important;
  position: relative;
}

.drawer-in.lv283-drawer .lv283-contacts-section,
.drawer-in.lv283-drawer .lv283-contacts-section section,
.drawer-in.lv283-drawer .lv283-contact-card,
.drawer-in.lv283-drawer .lv283-contact-grid,
.drawer-in.lv283-drawer .lv283-select-wrap{
  overflow: visible !important;
}

.drawer-in.lv283-drawer .lv283-select-wrap{
  position: relative !important;
  z-index: 20;
}

.drawer-in.lv283-drawer .lv283-select-menu{
  left: 0 !important;
  right: auto !important;
  min-width: 220px !important;
  z-index: 200 !important;
}

/* capability: remove preset category chooser row */
.drawer-in.lv283-drawer .lv283-capability-preset{
  display: none !important;
}

.drawer-in.lv283-drawer .lv283-capability-note{
  margin-bottom: 12px;
  padding: 10px 12px;
  border-radius: 14px;
  border: 1px dashed #E6E0D7;
  background: #FCFCFB;
  font-size: 11px;
  line-height: 18px;
  color: #8B8B8B;
}


/* ==== lovix-suppliers-v284-current-panel-fix.css ==== */
/* ==========================================================================
   Lovix v284 · Current Supplier panel hard fix
   Fixes the severe wireframe/content-order issue in the right insights module.
   Rebuilds the inner current-supplier panel with correct label/value hierarchy
   and a cleaner, flatter border system.
   ========================================================================== */

/* keep the right insights parent clean */
.supplier-page-scope .lv284-current-shell{
  border: 1px solid #E8E4DD !important;
  border-radius: 24px !important;
  background: #FFFFFF !important;
  padding: 14px !important;
}

.supplier-page-scope .lv284-current-shell > .lv283-old-content,
.supplier-page-scope .lv284-current-shell > .lv283-current-rebuild{
  display: none !important;
}

.supplier-page-scope .lv284-current-rebuild{
  display: flex !important;
  flex-direction: column !important;
  gap: 12px !important;
}

.supplier-page-scope .lv284-summary-grid{
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 10px !important;
}

.supplier-page-scope .lv284-stat-card{
  border: 1px solid #E8E4DD !important;
  border-radius: 18px !important;
  background: #FFFFFF !important;
  padding: 14px !important;
}

.supplier-page-scope .lv284-stat-label{
  font-size: 10px !important;
  line-height: 12px !important;
  letter-spacing: .18em !important;
  text-transform: uppercase !important;
  color: #A7A097 !important;
}

.supplier-page-scope .lv284-stat-value{
  margin-top: 10px !important;
  font-size: 16px !important;
  line-height: 20px !important;
  font-weight: 600 !important;
  color: #171717 !important;
}

.supplier-page-scope .lv284-info-box{
  border: 1px solid #E8E4DD !important;
  border-radius: 18px !important;
  background: #FFFFFF !important;
  padding: 14px !important;
}

.supplier-page-scope .lv284-box-title{
  font-size: 10px !important;
  line-height: 12px !important;
  letter-spacing: .18em !important;
  text-transform: uppercase !important;
  color: #A7A097 !important;
  margin-bottom: 8px !important;
}

.supplier-page-scope .lv284-info-rows{
  display: flex !important;
  flex-direction: column !important;
  gap: 8px !important;
}

.supplier-page-scope .lv284-info-row{
  display: flex !important;
  justify-content: space-between !important;
  align-items: flex-start !important;
  gap: 14px !important;
  font-size: 12px !important;
  line-height: 18px !important;
}

.supplier-page-scope .lv284-info-key{
  color: #8B8B8B !important;
}

.supplier-page-scope .lv284-info-val{
  color: #171717 !important;
  font-weight: 500 !important;
  text-align: right !important;
}

.supplier-page-scope .lv284-chip-group{
  display: flex !important;
  flex-direction: column !important;
  gap: 8px !important;
}

.supplier-page-scope .lv284-chip-title{
  font-size: 10px !important;
  line-height: 12px !important;
  letter-spacing: .18em !important;
  text-transform: uppercase !important;
  color: #A7A097 !important;
}

.supplier-page-scope .lv284-chip-wrap{
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
}

.supplier-page-scope .lv284-chip{
  height: 28px !important;
  padding: 0 11px !important;
  border-radius: 999px !important;
  border: 1px solid #E8E4DD !important;
  background: #FFFFFF !important;
  display: inline-flex !important;
  align-items: center !important;
  font-size: 11px !important;
  line-height: 1 !important;
  color: #6F6F6F !important;
}

/* responsive */
@media (max-width: 640px){
  .supplier-page-scope .lv284-summary-grid{
    grid-template-columns: 1fr !important;
  }
}


/* ==== lovix-suppliers-v285-card-bottom-gradient.css ==== */
/* ==========================================================================
   Lovix v285 · Supplier card bottom gradient
   Goal: make supplier cards match task-page feeling with an extremely subtle
   bottom fade / tint, not obvious, just a gentle tone at the lower area.
   ========================================================================== */

.supplier-page-scope.lvsup-rowfix .lvsr-card{
  position: relative !important;
  overflow: hidden !important;
  background: #FFFFFF !important;
}

/* keep actual content above the tint layer */
.supplier-page-scope.lvsup-rowfix .lvsr-card > .lvsr-card-body{
  position: relative !important;
  z-index: 2 !important;
}

/* ultra-light task-page-like bottom fade */
.supplier-page-scope.lvsup-rowfix .lvsr-card::after{
  content: "";
  position: absolute;
  inset: auto 0 0 0;
  height: 34%;
  pointer-events: none;
  z-index: 1;
  background: linear-gradient(
    180deg,
    rgba(250, 250, 248, 0) 0%,
    rgba(250, 250, 248, 0.28) 48%,
    rgba(246, 248, 239, 0.62) 100%
  );
}

/* make the bottom tone feel slightly more grounded without becoming visible */
.supplier-page-scope.lvsup-rowfix .lvsr-card .lvsr-desc,
.supplier-page-scope.lvsup-rowfix .lvsr-card .lvsr-footer{
  position: relative !important;
  z-index: 2 !important;
}

/* hover only a hair stronger, still extremely subtle */
.supplier-page-scope.lvsup-rowfix .lvsr-card:hover::after{
  background: linear-gradient(
    180deg,
    rgba(250, 250, 248, 0) 0%,
    rgba(250, 250, 248, 0.32) 48%,
    rgba(244, 247, 233, 0.72) 100%
  );
}


/* ==== lovix-suppliers-v286-audit-pass.css ==== */
/* ==========================================================================
   Lovix v286 · Supplier page audit pass
   Fixes from user screenshots:
   1) supplier card hover must not show lime/green block feel
   2) remove the whole right-side Supplier Insights board
   3) align suppliers page horizontal margins closer to task/home pages
   4) compact and normalize filter dropdown design
   5) only one dropdown open at a time; outside click closes
   6) fix clipped contacts select menu in drawer
   7) hide capability preset chips; keep custom text fields only
   ========================================================================== */

/* page width / side margins */
.supplier-page-scope.lv286-suppliers-page{
  max-width: 1560px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 28px !important;
  padding-right: 28px !important;
  padding-bottom: 40px !important;
  box-sizing: border-box !important;
}

/* remove the whole right-side insights board */
.supplier-page-scope.lv286-suppliers-page .lv286-hide-insights{
  display: none !important;
}

@media (min-width:1280px){
  .supplier-page-scope.lv286-suppliers-page .lv286-main-layout{
    grid-template-columns: minmax(0, 1fr) !important;
    align-items: start !important;
  }
}

/* supplier row-card hover: no green block / lime hover */
.supplier-page-scope.lv286-suppliers-page .lvsr-card,
.supplier-page-scope.lv286-suppliers-page .lvsr-card:hover,
.supplier-page-scope.lv286-suppliers-page .lvsr-card:focus-within{
  background: #FFFFFF !important;
  box-shadow: none !important;
}

.supplier-page-scope.lv286-suppliers-page .lvsr-card:hover{
  border-color: #EEECE7 !important;
}

/* keep bottom gradient same on hover, do not green-shift */
.supplier-page-scope.lv286-suppliers-page .lvsr-card:hover::after{
  background: linear-gradient(
    180deg,
    rgba(250, 250, 248, 0) 0%,
    rgba(250, 250, 248, 0.28) 48%,
    rgba(246, 248, 239, 0.62) 100%
  ) !important;
}

/* compact, calmer filter dropdown system */
.supplier-page-scope.lv286-suppliers-page .lv286-select-wrap{
  position: relative !important;
}

.supplier-page-scope.lv286-suppliers-page .lv286-filter-menu,
.drawer-in.lv283-drawer .lv286-contact-menu{
  min-width: 184px !important;
  max-width: 240px !important;
  border: 1px solid #E8E4DD !important;
  border-radius: 22px !important;
  background: #FFFFFF !important;
  box-shadow: 0 8px 24px rgba(17,17,17,.06) !important;
  padding: 8px 0 !important;
  overflow: hidden !important;
  z-index: 320 !important;
}

.supplier-page-scope.lv286-suppliers-page .lv286-filter-menu > *,
.drawer-in.lv283-drawer .lv286-contact-menu > *{
  min-height: 0 !important;
}

.supplier-page-scope.lv286-suppliers-page .lv286-filter-menu button,
.supplier-page-scope.lv286-suppliers-page .lv286-filter-menu [role='option'],
.supplier-page-scope.lv286-suppliers-page .lv286-filter-menu > div,
.drawer-in.lv283-drawer .lv286-contact-menu button,
.drawer-in.lv283-drawer .lv286-contact-menu [role='option'],
.drawer-in.lv283-drawer .lv286-contact-menu > div{
  padding: 10px 18px !important;
  font-size: 13px !important;
  line-height: 18px !important;
  border-radius: 0 !important;
}

.supplier-page-scope.lv286-suppliers-page .lv286-filter-menu button:hover,
.supplier-page-scope.lv286-suppliers-page .lv286-filter-menu [role='option']:hover,
.supplier-page-scope.lv286-suppliers-page .lv286-filter-menu > div:hover,
.drawer-in.lv283-drawer .lv286-contact-menu button:hover,
.drawer-in.lv283-drawer .lv286-contact-menu [role='option']:hover,
.drawer-in.lv283-drawer .lv286-contact-menu > div:hover{
  background: #FAFAF8 !important;
}

/* stronger drawer overflow fix */
.drawer-in.lv283-drawer,
.drawer-in.lv283-drawer .lv283-drawer-body,
.drawer-in.lv283-drawer .lv283-contacts-section,
.drawer-in.lv283-drawer .lv283-contacts-section section,
.drawer-in.lv283-drawer .lv283-contact-card,
.drawer-in.lv283-drawer .lv283-contact-grid,
.drawer-in.lv283-drawer .lv286-select-wrap,
.drawer-in.lv283-drawer .lv283-select-wrap{
  overflow: visible !important;
}

.drawer-in.lv283-drawer .lv286-select-wrap,
.drawer-in.lv283-drawer .lv283-select-wrap{
  position: relative !important;
  z-index: 60 !important;
}

.drawer-in.lv283-drawer .lv286-contact-menu,
.drawer-in.lv283-drawer .lv283-select-menu{
  left: 0 !important;
  right: auto !important;
  top: calc(100% + 8px) !important;
  z-index: 360 !important;
}

/* capability preset chips fully hidden */
.drawer-in.lv283-drawer .lv286-capability-preset,
.drawer-in.lv283-drawer .lv283-capability-preset,
.drawer-in.lv283-drawer .lv283-capability-note,
.drawer-in.lv283-drawer .lv286-capability-note{
  display: none !important;
}


/* ==== lovix-page-gutter-unified-v287.css ==== */
/* ========================================================================== 
   Lovix v287 · Unified page gutters (all pages, except earth/dashboard page)
   Goal: make Spark Pool / Suppliers / Inventory and other custom pages match
   the standard desktop side margins used by Today Tasks / Overview.
   ========================================================================== */

:root{
  /* keep the global shell token explicit for consistency; do not alter earth page */
  --lovix-content-max: 1560px;
}

/* Standard desktop shell for pages that had their own custom narrower padding */
@media (min-width: 1024px){
  .lvsp-page,
  .lvinv-page,
  .supplier-page-scope,
  .supplier-page-scope.lv286-suppliers-page{
    max-width: var(--lovix-content-max) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: var(--lovix-content-gutter) !important;
    padding-right: var(--lovix-content-gutter) !important;
    box-sizing: border-box !important;
  }
}

/* Tablet fallback: still unified, but lighter */
@media (min-width: 761px) and (max-width: 1023px){
  .lvsp-page,
  .lvinv-page,
  .supplier-page-scope,
  .supplier-page-scope.lv286-suppliers-page{
    padding-left: 32px !important;
    padding-right: 32px !important;
    box-sizing: border-box !important;
  }
}

/* Mobile remains compact and safe */
@media (max-width: 760px){
  .lvsp-page,
  .lvinv-page,
  .supplier-page-scope,
  .supplier-page-scope.lv286-suppliers-page{
    padding-left: 16px !important;
    padding-right: 16px !important;
    box-sizing: border-box !important;
  }
}

/* Spark Pool: keep its custom vertical rhythm, only normalize horizontal gutter */
.lvsp-page{
  max-width: var(--lovix-content-max) !important;
}

/* Inventory: lock to system shell gutter */
.lvinv-page{
  max-width: var(--lovix-content-max) !important;
}

/* Suppliers: previous v286 audit pass narrowed this too much; restore system gutter */
.supplier-page-scope.lv286-suppliers-page{
  max-width: var(--lovix-content-max) !important;
  padding-left: var(--lovix-content-gutter) !important;
  padding-right: var(--lovix-content-gutter) !important;
}


/* ==== lovix-spark-pool-v288-refine.css ==== */
/* ========================================================================== 
   Lovix v288 · Spark Pool three-fix refinement
   1) Shrink ThemeTree side panel footprint
   2) Move status badge left, next to type badge
   3) Improve Fragment Strips spacing / typography hierarchy
   ========================================================================== */

/* 1) ThemeTree block: narrower and more compact */
.lvsp-content-grid{
  grid-template-columns:292px minmax(0,1fr) !important;
  gap:22px !important;
}
.lvsp-theme-tree-card{
  border-radius:26px !important;
  padding:18px 16px 16px !important;
  max-height:calc(100vh - 44px) !important;
}
.lvsp-tree-head{
  gap:10px !important;
  padding-bottom:12px !important;
}
.lvsp-tree-head h2{
  font-size:15px !important;
  line-height:20px !important;
}
.lvsp-tree-head h2 span{
  font-size:10.5px !important;
  line-height:13px !important;
  margin-left:5px !important;
}
.lvsp-tree-head p{
  margin-top:4px !important;
  font-size:10.5px !important;
  line-height:15px !important;
}
.lvsp-tree-reset,
.lvsp-tree-foot button{
  height:26px !important;
  padding:0 10px !important;
  font-size:10px !important;
}
.lvsp-tree-summary{
  margin:12px 0 8px !important;
  padding:9px 11px !important;
  border-radius:16px !important;
}
.lvsp-tree-summary span{
  font-size:9.5px !important;
}
.lvsp-tree-summary b{
  font-size:11px !important;
  line-height:15px !important;
}
.lvsp-tree-group{
  padding:12px 0 11px !important;
}
.lvsp-tree-type{
  min-height:30px !important;
  padding:0 6px 0 8px !important;
}
.lvsp-tree-type strong{
  font-size:13px !important;
  line-height:18px !important;
}
.lvsp-tree-type em,
.lvsp-tree-theme em{
  font-size:10.5px !important;
}
.lvsp-tree-themes{
  margin-top:7px !important;
  gap:3px !important;
}
.lvsp-tree-theme{
  min-height:28px !important;
  padding:0 8px 0 18px !important;
}
.lvsp-tree-theme span{
  font-size:11.5px !important;
  line-height:16px !important;
}
.lvsp-tree-empty{
  margin:7px 0 0 8px !important;
  font-size:10.5px !important;
}
.lvsp-tree-foot{
  margin-top:12px !important;
  padding-top:12px !important;
}
.lvsp-tree-foot span{
  font-size:10px !important;
}

/* 2) Fragment strip top badges: keep status closer to left tag */
.lvsp-strip-top{
  grid-template-columns:22px auto auto minmax(0,1fr) auto !important;
  gap:8px !important;
}
.lvsp-listbox.lvsp-stripbox:not(.is-selecting) .lvsp-strip-top{
  grid-template-columns:auto auto minmax(0,1fr) auto !important;
}
.lvsp-strip .lvsp-type,
.lvsp-strip .lvsp-status{
  justify-self:start !important;
}
.lvsp-strip .lvsp-status{
  margin-left:0 !important;
}
.lvsp-strip .lvsp-date{
  justify-self:end !important;
}

/* 3) Fragment Strips block: better breathing room and hierarchy */
.lvsp-listbox.lvsp-stripbox{
  padding:24px 26px 28px !important;
}
.lvsp-listbox.lvsp-stripbox .lvsp-list-title{
  margin-bottom:18px !important;
}
.lvsp-listbox.lvsp-stripbox .lvsp-list-title h2{
  gap:10px !important;
}
.lvsp-listbox.lvsp-stripbox .lvsp-list-title h2 span{
  font-size:12.5px !important;
  color:#979797 !important;
}
.lvsp-listbox.lvsp-stripbox .lvsp-list-title p{
  margin-top:7px !important;
  font-size:12.5px !important;
  line-height:19px !important;
  color:#9C9C9C !important;
}
.lvsp-strip-grid{
  gap:16px !important;
}
.lvsp-strip{
  min-height:132px !important;
  border-radius:24px !important;
  padding:16px 17px 15px !important;
  background:linear-gradient(180deg,#FFFFFF 0%,#FFFFFF 70%,#FBFCF8 100%) !important;
}
.lvsp-strip:hover{
  box-shadow:0 10px 24px rgba(0,0,0,.022) !important;
}
.lvsp-strip-main{
  gap:6px !important;
  margin-top:12px !important;
}
.lvsp-strip-main strong{
  font-size:14.5px !important;
  line-height:20px !important;
  font-weight:770 !important;
  letter-spacing:-0.02em !important;
}
.lvsp-strip-main em{
  font-size:11.5px !important;
  line-height:17px !important;
  color:#989898 !important;
}
.lvsp-strip-meta{
  margin-top:13px !important;
  padding-top:11px !important;
  gap:6px 8px !important;
}
.lvsp-strip-meta span{
  font-size:10px !important;
  color:#A1A1A1 !important;
}
.lvsp-strip-meta b{
  font-size:10.5px !important;
  color:#6F6F6F !important;
}

@media (max-width:1500px){
  .lvsp-content-grid{grid-template-columns:276px minmax(0,1fr) !important;gap:18px !important;}
}
@media (max-width:1120px){
  .lvsp-content-grid{grid-template-columns:1fr !important;}
}
@media (max-width:720px){
  .lvsp-listbox.lvsp-stripbox{padding:18px 16px 20px !important;}
  .lvsp-strip-grid{gap:12px !important;}
}


/* ==== lovix-spark-pool-v289-deep-fixes.css ==== */
/* ========================================================================== 
   Lovix v289 · Spark Pool deep screenshot fixes
   Fixes from latest five screenshots:
   1) Fragment detail filled values should not be bold
   2) ThemeTree panel shrinks further
   3) Inline expanded fragment spacing / bottom-right actions / remove Source-Link
   4) Quick Theme datalist gets replaced by custom menu
   5) Theme manager gets edit / delete controls
   ========================================================================== */

/* 1) Detail drawer / modal inputs: labels may be bold, filled values are normal */
.lvsp-drawer .lvsp-input,
.lvsp-drawer .lvsp-textarea,
.lvsp-drawer select,
.lvsp-drawer input,
.lvsp-drawer textarea,
.lvsp-modal .lvsp-input,
.lvsp-modal .lvsp-textarea,
.lvsp-modal select,
.lvsp-modal input,
.lvsp-modal textarea{
  font-weight: 400 !important;
  color:#171717 !important;
}
.lvsp-drawer .lvsp-input::placeholder,
.lvsp-drawer .lvsp-textarea::placeholder,
.lvsp-modal .lvsp-input::placeholder,
.lvsp-modal .lvsp-textarea::placeholder{
  font-weight:400 !important;
  color:#B0B0B0 !important;
}
/* select chosen value should not look like a title */
.lvsp-drawer select.lvsp-input,
.lvsp-modal select.lvsp-input{
  font-weight:500 !important;
}
/* textarea content should read as body text */
.lvsp-drawer textarea.lvsp-textarea,
.lvsp-modal textarea.lvsp-textarea{
  line-height:22px !important;
}

/* 2) ThemeTree: smaller footprint */
.lvsp-content-grid{
  grid-template-columns:240px minmax(0,1fr) !important;
  gap:24px !important;
}
.lvsp-theme-tree-card{
  border-radius:24px !important;
  padding:16px 14px 14px !important;
  max-height:min(640px, calc(100vh - 94px)) !important;
}
.lvsp-tree-head{
  padding-bottom:10px !important;
}
.lvsp-tree-head h2{
  font-size:14px !important;
  line-height:19px !important;
}
.lvsp-tree-head h2 span{
  font-size:10px !important;
  margin-left:4px !important;
}
.lvsp-tree-head p{
  font-size:10px !important;
  line-height:14px !important;
}
.lvsp-tree-reset{
  height:24px !important;
  min-width:36px !important;
  padding:0 9px !important;
  font-size:9.5px !important;
}
.lvsp-tree-summary{
  margin:10px 0 7px !important;
  padding:8px 10px !important;
  border-radius:14px !important;
}
.lvsp-tree-group{
  padding:10px 0 9px !important;
}
.lvsp-tree-type{
  min-height:28px !important;
  padding:0 4px 0 7px !important;
}
.lvsp-tree-type strong{
  font-size:12.5px !important;
  line-height:17px !important;
}
.lvsp-tree-theme{
  min-height:26px !important;
  padding:0 6px 0 16px !important;
}
.lvsp-tree-theme span{
  font-size:11px !important;
  line-height:15px !important;
}
.lvsp-tree-foot{
  margin-top:10px !important;
  padding-top:10px !important;
}
@media (max-width:1500px){
  .lvsp-content-grid{grid-template-columns:228px minmax(0,1fr) !important; gap:20px !important;}
}
@media (max-width:1120px){
  .lvsp-content-grid{grid-template-columns:1fr !important;}
}

/* 3) Expanded fragment detail: less dense body, no source/link row, actions right-bottom */
.lvsp-strip.is-open{
  min-height:276px !important;
}
.lvsp-strip.is-open .lvsp-strip-detail{
  margin-top:13px !important;
  padding-top:13px !important;
  gap:8px !important;
}
.lvsp-strip.is-open .lvsp-strip-detail p{
  font-size:10.5px !important;
  line-height:16px !important;
  color:#7A7A7A !important;
  -webkit-line-clamp:3 !important;
  max-width:92% !important;
}
.lvsp-strip.is-open .lvsp-strip-chips{
  gap:5px !important;
  min-height:20px !important;
}
.lvsp-strip.is-open .lvsp-mini,
.lvsp-strip.is-open .lvsp-tag{
  height:19px !important;
  font-size:9px !important;
  padding:0 7px !important;
  max-width:80px !important;
}
.lvsp-strip.is-open .lvsp-strip-info{
  display:none !important;
}
.lvsp-strip.is-open .lvsp-actions-cell{
  justify-content:flex-end !important;
  align-items:center !important;
  margin-top:6px !important;
  width:100% !important;
}
.lvsp-strip.is-open .lvsp-actions-cell button{
  height:27px !important;
  padding:0 11px !important;
  font-size:10px !important;
}

/* 4) Custom quick Theme menu, no native Excel-looking datalist dropdown */
.lvsp-quick-theme-wrap{
  position:relative !important;
  min-width:0;
}
.lvsp-quick-theme-wrap #lvsp-quick-theme{
  width:100% !important;
}
.lvsp-custom-theme-menu{
  position:absolute;
  left:0;
  top:calc(100% + 8px);
  width:min(260px, 92vw);
  max-height:310px;
  overflow:auto;
  scrollbar-width:none;
  z-index:9998;
  padding:8px;
  border:1px solid #E8E4DD;
  border-radius:20px;
  background:#FFFFFF;
  box-shadow:0 18px 44px rgba(17,17,17,.10);
  display:none;
}
.lvsp-custom-theme-menu.is-open{display:block;}
.lvsp-custom-theme-menu::-webkit-scrollbar{display:none;}
.lvsp-custom-theme-option{
  width:100%;
  min-height:34px;
  border:0;
  border-radius:13px;
  background:transparent;
  text-align:left;
  padding:0 12px;
  font-size:12px;
  line-height:18px;
  color:#333;
  cursor:pointer;
}
.lvsp-custom-theme-option:hover,
.lvsp-custom-theme-option.is-active{
  background:#F9F9F7;
}
.lvsp-custom-theme-empty{
  padding:10px 12px;
  font-size:11px;
  line-height:18px;
  color:#9A9A9A;
}

/* 5) Theme Manager: edit / delete / management controls */
.lvsp-theme-item{
  grid-template-columns:minmax(0,1fr) 110px auto auto auto auto !important;
}
.lvsp-theme-item button[data-edit-theme],
.lvsp-theme-item button[data-delete-theme]{
  height:28px;
  border-radius:999px;
  border:1px solid #E8E8E8;
  background:#fff;
  color:#555;
  font-size:10px;
  font-weight:720;
  padding:0 9px;
  cursor:pointer;
}
.lvsp-theme-item button[data-delete-theme]{
  color:#8A5A52;
  background:#FFFCFA;
}
.lvsp-theme-item button[data-edit-theme]:hover,
.lvsp-theme-item button[data-delete-theme]:hover{
  background:#F9F9F9;
}
@media (max-width:900px){
  .lvsp-theme-item{grid-template-columns:1fr !important;}
}


/* ==== lovix-spark-pool-v290-hierarchy-fixes.css ==== */
/* Lovix v290 · Spark Pool hierarchy + customization pass */

/* custom system modal / confirm: replace browser alert-confirm feeling */
.lvsp-v290-backdrop{
  position:fixed; inset:0; z-index:10030;
  background:rgba(17,17,17,.18);
  backdrop-filter:blur(2px);
}
.lvsp-v290-modal{
  position:fixed; left:50%; top:50%; transform:translate(-50%,-50%);
  z-index:10031; width:min(1120px,92vw); max-height:88vh; overflow:hidden;
  display:flex; flex-direction:column;
  background:#fff; border:1px solid #E7E3DB; border-radius:30px;
  box-shadow:0 28px 80px rgba(0,0,0,.16);
}
.lvsp-v290-modal.is-compact{ width:min(660px,92vw); }
.lvsp-v290-modal header{ display:flex; justify-content:space-between; gap:14px; padding:22px 24px 16px; border-bottom:1px solid #EFEAE0; }
.lvsp-v290-modal h2{ margin:0; font-size:24px; line-height:30px; font-weight:780; letter-spacing:-.03em; color:#171717; }
.lvsp-v290-modal header p{ margin:6px 0 0; font-size:12px; line-height:18px; color:#98928A; }
.lvsp-v290-close{ width:38px; height:38px; border-radius:999px; border:1px solid #E8E8E8; background:#fff; color:#767676; font-size:22px; cursor:pointer; }
.lvsp-v290-body{ padding:22px 24px; overflow:auto; scrollbar-width:none; }
.lvsp-v290-body::-webkit-scrollbar{ display:none; }
.lvsp-v290-modal footer{ display:flex; justify-content:flex-end; gap:10px; padding:14px 24px; border-top:1px solid #EFEAE0; background:#fff; }
.lvsp-v290-btn{ height:34px; padding:0 14px; border-radius:999px; border:1px solid #E8E8E8; background:#fff; color:#555; font-size:12px; font-weight:720; cursor:pointer; }
.lvsp-v290-btn.primary{ background:#111; color:#fff; border-color:#111; }
.lvsp-v290-btn.danger{ color:#8A5A52; background:#FFFCFA; }
.lvsp-v290-confirm-copy{ font-size:16px; line-height:24px; color:#333; }

/* taxonomy manager */
.lvsp-v290-taxonomy{ display:grid; grid-template-columns:280px minmax(0,1fr); gap:18px; }
.lvsp-v290-taxonomy-side{ display:grid; align-content:start; gap:14px; }
.lvsp-v290-block, .lvsp-v290-hint-block{ border:1px solid #EFEFEF; border-radius:22px; padding:16px; background:#fff; }
.lvsp-v290-block h3{ margin:0 0 12px; font-size:16px; line-height:22px; font-weight:760; color:#171717; }
.lvsp-v290-block .lvsp-input{ margin-bottom:12px; }
.lvsp-v290-hint-block p{ margin:0; font-size:12px; line-height:20px; color:#858585; }
.lvsp-v290-taxonomy-main{ display:grid; gap:12px; }
.lvsp-v290-tax-group{ border:1px solid #EFEFEF; border-radius:22px; padding:12px 14px; background:#fff; }
.lvsp-v290-tax-head{ display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
.lvsp-v290-tax-head strong{ display:block; font-size:18px; line-height:24px; color:#171717; }
.lvsp-v290-tax-head span{ display:block; margin-top:4px; font-size:11px; color:#A0A0A0; }
.lvsp-v290-tax-actions{ display:flex; flex-wrap:wrap; gap:8px; }
.lvsp-v290-tax-children{ display:grid; gap:8px; margin-top:12px; }
.lvsp-v290-tax-child{ display:flex; align-items:center; justify-content:space-between; gap:12px; border:1px solid #F1F1F1; border-radius:16px; padding:10px 12px; }
.lvsp-v290-tax-child span{ min-width:0; font-size:13px; line-height:18px; font-weight:650; color:#444; }
.lvsp-v290-tax-child > div{ display:flex; gap:8px; flex-wrap:wrap; }
.lvsp-v290-empty{ font-size:12px; color:#AAA; padding:8px 2px; }
.lvsp-v290-field{ display:grid; gap:8px; margin-bottom:12px; }
.lvsp-v290-field span{ font-size:12px; font-weight:700; color:#7A7A7A; }

/* tree inline controls + collapsible subthemes */
.lvsp-tree-group{ position:relative; }
.lvsp-v290-tree-actions{ display:flex; align-items:center; gap:6px; margin:6px 0 0 10px; }
.lvsp-v290-tree-mini,
.lvsp-v290-theme-edit{
  width:22px; height:22px; border-radius:999px; border:1px solid #E8E8E8;
  background:#fff; color:#8A8A8A; font-size:10px; line-height:1; cursor:pointer;
}
.lvsp-v290-theme-edit{ margin-left:8px; flex:0 0 auto; }
.lvsp-tree-theme{ position:relative; justify-content:flex-start !important; gap:8px !important; }
.lvsp-tree-theme em{ margin-left:auto; }

/* detail drawer hierarchy fields */
.lvsp-v290-detail-hint{ margin-top:8px; font-size:10.5px; line-height:16px; color:#A0A0A0; }
.lvsp-v290-combo{ position:relative; }
.lvsp-v290-combo-menu{
  position:absolute; left:0; top:calc(100% + 8px); z-index:10032;
  width:min(380px, 88vw); max-height:280px; overflow:auto; display:none;
  padding:8px; border:1px solid #E7E3DB; border-radius:20px; background:#fff;
  box-shadow:0 18px 44px rgba(17,17,17,.10);
}
.lvsp-v290-combo-menu.is-open{ display:block; }
.lvsp-v290-combo-option,.lvsp-v290-combo-create{
  width:100%; min-height:36px; border:0; border-radius:12px; background:transparent;
  text-align:left; padding:0 12px; font-size:12.5px; line-height:18px; color:#333; cursor:pointer;
}
.lvsp-v290-combo-option:hover,.lvsp-v290-combo-create:hover{ background:#F8F8F6; }
.lvsp-v290-combo-create{ color:#171717; font-weight:720; }
.lvsp-v290-combo-empty{ padding:10px 12px; font-size:11px; line-height:18px; color:#A0A0A0; }

/* old manager spacing fallback */
.lvsp-theme-manager > div:first-child .lvsp-input{ margin-bottom:14px !important; }
.lvsp-theme-manager > div:first-child .lvsp-btn.primary{ margin-top:2px !important; }

@media (max-width: 980px){
  .lvsp-v290-taxonomy{ grid-template-columns:1fr; }
}


/* ==== lovix-spark-pool-v291-taxonomy-cleanup.css ==== */
.lvsp-custom-theme-menu{display:none!important;}
.lvsp-quick-theme-wrap{width:100%;}
.lvsp-theme-tree-card .lvsp-v290-tree-actions,
.lvsp-theme-tree-card .lvsp-v290-theme-edit{display:none!important;}
.lvsp-tree-group{position:relative;}
.lvsp-v291-tree-toggle{position:absolute;right:4px;top:16px;width:24px;height:24px;border-radius:999px;border:1px solid #ECE8DE;background:#fff;color:#969696;font-size:11px;line-height:1;cursor:pointer;}
.lvsp-tree-type{padding-right:36px!important;}
.lvsp-tree-theme span{font-weight:580!important;color:#666!important;}
.lvsp-tree-theme em{font-weight:650!important;}
#lvsp-quick .lvsp-input{width:100%;}
.lvsp-v291-combo{position:relative;width:100%;}
.lvsp-v291-menu{position:absolute;top:calc(100% + 8px);left:0;z-index:10012;width:min(420px,90vw);max-height:300px;overflow:auto;display:none;padding:8px;border:1px solid #E8E3D8;border-radius:22px;background:#fff;box-shadow:0 18px 44px rgba(17,17,17,.10);}
.lvsp-v291-menu.is-open{display:block;}
.lvsp-v291-opt,.lvsp-v291-create,.lvsp-v291-manage-link{width:100%;min-height:38px;border:0;border-radius:14px;background:transparent;text-align:left;padding:0 12px;font-size:13px;line-height:18px;color:#333;cursor:pointer;}
.lvsp-v291-opt:hover,.lvsp-v291-create:hover,.lvsp-v291-manage-link:hover{background:#F7F7F4;}
.lvsp-v291-create{font-weight:760;color:#171717;}
.lvsp-v291-manage-link{border-top:1px solid #F0EBE2;margin-top:6px;padding-top:10px;font-size:12px;color:#7B746A;}
.lvsp-v291-noopt{padding:10px 12px;font-size:11px;line-height:18px;color:#A0A0A0;}
.lvsp-v291-usehint{display:block;margin-top:8px;font-size:10.5px;line-height:16px;color:#A0A0A0;}
.lvsp-v291-backdrop{position:fixed;inset:0;z-index:10020;background:rgba(17,17,17,.18);backdrop-filter:blur(2px);}
.lvsp-v291-shell{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);z-index:10021;width:min(1160px,94vw);max-height:90vh;overflow:hidden;display:flex;flex-direction:column;background:#fff;border:1px solid #E8E3D8;border-radius:30px;box-shadow:0 32px 88px rgba(0,0,0,.16);}
.lvsp-v291-shell.compact{width:min(640px,92vw);}
.lvsp-v291-shell>header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:22px 24px 16px;border-bottom:1px solid #F0EBE2;}
.lvsp-v291-shell h2{margin:0;font-size:26px;line-height:32px;font-weight:780;letter-spacing:-.03em;color:#171717;}
.lvsp-v291-shell header p{margin:6px 0 0;font-size:12px;line-height:19px;color:#98928A;}
.lvsp-v291-close{width:40px;height:40px;border-radius:999px;border:1px solid #E8E8E8;background:#fff;color:#767676;font-size:23px;cursor:pointer;}
.lvsp-v291-body{padding:22px 24px;overflow:auto;scrollbar-width:none;}
.lvsp-v291-body::-webkit-scrollbar{display:none;}
.lvsp-v291-shell footer{display:flex;justify-content:flex-end;gap:10px;padding:14px 24px;border-top:1px solid #F0EBE2;}
.lvsp-v291-btn{height:34px;padding:0 14px;border-radius:999px;border:1px solid #E8E8E8;background:#fff;color:#5E5E5E;font-size:12px;font-weight:730;cursor:pointer;}
.lvsp-v291-btn.full{width:100%;justify-content:center;}
.lvsp-v291-btn.primary{background:#111;color:#fff;border-color:#111;}
.lvsp-v291-btn.danger{color:#8A5A52;background:#FFFCFA;}
.lvsp-v291-taxonomy{display:grid;grid-template-columns:300px minmax(0,1fr);gap:18px;}
.lvsp-v291-side{display:grid;gap:14px;align-content:start;}
.lvsp-v291-panel,.lvsp-v291-note{border:1px solid #EFE9DD;border-radius:22px;padding:16px;background:#fff;}
.lvsp-v291-panel h3{margin:0 0 12px;font-size:16px;line-height:22px;font-weight:760;color:#171717;}
.lvsp-v291-panel .lvsp-input{margin-bottom:12px;}
.lvsp-v291-note p{margin:0;font-size:12px;line-height:20px;color:#858585;}
.lvsp-v291-main{display:grid;gap:12px;}
.lvsp-v291-typecard{border:1px solid #EFE9DD;border-radius:22px;padding:14px;background:#fff;}
.lvsp-v291-typehead{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;}
.lvsp-v291-typehead strong{display:block;font-size:18px;line-height:24px;color:#171717;}
.lvsp-v291-typehead span{display:block;margin-top:4px;font-size:11px;color:#A0A0A0;}
.lvsp-v291-actions{display:flex;flex-wrap:wrap;gap:8px;}
.lvsp-v291-theme-list{display:grid;gap:8px;margin-top:12px;}
.lvsp-v291-theme-row{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid #F1ECE2;border-radius:16px;padding:10px 12px;}
.lvsp-v291-theme-row b{display:block;font-size:13px;line-height:18px;font-weight:640;color:#444;}
.lvsp-v291-theme-row span{display:block;margin-top:3px;font-size:11px;color:#A0A0A0;}
.lvsp-v291-empty{padding:8px 2px;font-size:12px;color:#AAA;}
.lvsp-v291-field{display:grid;gap:8px;}
.lvsp-v291-field span{font-size:12px;font-weight:720;color:#7A7A7A;}
.lvsp-v291-confirm{font-size:16px;line-height:24px;color:#333;}
.lvsp-strip.tone-idea{background:linear-gradient(180deg,#FFFFFF 0%,#FFFFFF 71%,#FBFCF7 100%);}
.lvsp-strip.tone-b2b{background:linear-gradient(180deg,#FFFFFF 0%,#FFFFFF 71%,#FDF8EA 100%);}
.lvsp-strip.tone-copy{background:linear-gradient(180deg,#FFFFFF 0%,#FFFFFF 71%,#FCF5EE 100%);}
.lvsp-strip.tone-tool{background:linear-gradient(180deg,#FFFFFF 0%,#FFFFFF 71%,#F8F7F3 100%);}
.lvsp-strip.tone-question{background:linear-gradient(180deg,#FFFFFF 0%,#FFFFFF 71%,#F8FAF0 100%);}
.lvsp-strip.tone-fact{background:linear-gradient(180deg,#FFFFFF 0%,#FFFFFF 71%,#FAF8F2 100%);}
.lvsp-strip.tone-default{background:linear-gradient(180deg,#FFFFFF 0%,#FFFFFF 71%,#FAFAF7 100%);}
.lvsp-strip.is-open.tone-idea{background:linear-gradient(180deg,#FFFFFF 0%,#FFFFFF 56%,#FBFCF7 100%);}
.lvsp-strip.is-open.tone-b2b{background:linear-gradient(180deg,#FFFFFF 0%,#FFFFFF 56%,#FDF8EA 100%);}
.lvsp-strip.is-open.tone-copy{background:linear-gradient(180deg,#FFFFFF 0%,#FFFFFF 56%,#FCF5EE 100%);}
.lvsp-strip.is-open.tone-tool{background:linear-gradient(180deg,#FFFFFF 0%,#FFFFFF 56%,#F8F7F3 100%);}
.lvsp-strip.is-open.tone-question{background:linear-gradient(180deg,#FFFFFF 0%,#FFFFFF 56%,#F8FAF0 100%);}
.lvsp-strip.is-open.tone-fact{background:linear-gradient(180deg,#FFFFFF 0%,#FFFFFF 56%,#FAF8F2 100%);}
.lvsp-v291-strip-use{display:grid;gap:4px;padding:10px 11px;border:1px solid #EFEAE0;border-radius:16px;background:#fff;}
.lvsp-v291-strip-use span{font-size:10px;line-height:14px;font-weight:700;color:#9C958A;}
.lvsp-v291-strip-use strong{font-size:11px;line-height:17px;font-weight:650;color:#5F5F5F;}
@media (max-width:980px){.lvsp-v291-taxonomy{grid-template-columns:1fr;}}


/* ==== lovix-spark-pool-v292-tree-spacing-fix.css ==== */
/* Lovix v292 · Spark Pool tree spacing + chevron refinement */

/* overall left-right breathing */
.lvsp-content-grid{
  grid-template-columns: 344px minmax(0,1fr) !important;
  gap: 24px !important;
}
@media (max-width:1500px){
  .lvsp-content-grid{
    grid-template-columns: 332px minmax(0,1fr) !important;
    gap: 22px !important;
  }
}
@media (max-width:1120px){
  .lvsp-content-grid{ grid-template-columns:1fr !important; }
}

/* fragment board gains a little more breathing */
.lvsp-listbox.lvsp-stripbox{
  padding: 24px 24px 26px !important;
}
.lvsp-listbox.lvsp-stripbox .lvsp-list-title{
  margin-bottom: 18px !important;
}
.lvsp-strip-grid{
  gap: 14px !important;
  grid-template-columns: repeat(auto-fill,minmax(320px,1fr)) !important;
}

/* theme tree header less cramped */
.lvsp-theme-tree-card{
  border-radius: 32px !important;
  padding: 24px 22px 18px !important;
}
.lvsp-tree-head{
  gap: 16px !important;
  padding-bottom: 18px !important;
}
.lvsp-tree-head h2{
  font-size: 18px !important;
  line-height: 24px !important;
}
.lvsp-tree-head h2 span{
  margin-left: 8px !important;
  font-size: 12px !important;
}
.lvsp-tree-head p{
  margin-top: 7px !important;
  font-size: 11.5px !important;
  line-height: 17px !important;
}
.lvsp-tree-summary{
  margin: 16px 0 14px !important;
  padding: 12px 14px !important;
  border-radius: 20px !important;
}
.lvsp-tree-body{
  gap: 2px !important;
}
.lvsp-tree-group{
  padding: 15px 0 14px !important;
}

/* first-level row */
.lvsp-tree-type{
  min-height: 34px !important;
  padding: 0 34px 0 10px !important;
  border-radius: 16px !important;
}
.lvsp-tree-type strong{
  font-size: 14.5px !important;
  line-height: 20px !important;
}
.lvsp-tree-type em,
.lvsp-tree-theme em{
  font-size: 11px !important;
}

/* second-level list and text should feel lighter */
.lvsp-tree-themes{
  margin-top: 10px !important;
  gap: 6px !important;
}
.lvsp-tree-theme{
  min-height: 28px !important;
  padding: 0 10px 0 22px !important;
  border-radius: 14px !important;
}
.lvsp-tree-theme span{
  font-size: 12.5px !important;
  line-height: 17px !important;
  font-weight: 560 !important;
  color: #696969 !important;
}
.lvsp-tree-theme.active span{
  font-weight: 600 !important;
}

/* refined chevron toggle instead of chunky circular button */
.lvsp-v291-tree-toggle{
  right: 4px !important;
  top: 18px !important;
  width: 18px !important;
  height: 18px !important;
  border: 0 !important;
  background: transparent !important;
  border-radius: 999px !important;
  padding: 0 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  color: transparent !important;
}
.lvsp-v292-chevron{
  width: 8px;
  height: 8px;
  display: inline-block;
  border-right: 1.5px solid #9F9F9F;
  border-bottom: 1.5px solid #9F9F9F;
  transform: rotate(45deg) translateY(-1px);
  transform-origin: 50% 50%;
  transition: transform .16s ease, border-color .16s ease;
}
.lvsp-v291-tree-toggle.is-collapsed .lvsp-v292-chevron{
  transform: rotate(-45deg) translateX(1px);
}
.lvsp-v291-tree-toggle:hover .lvsp-v292-chevron{
  border-color: #6E6E6E;
}

/* tree footer and tiny copy cleaner */
.lvsp-tree-foot{
  margin-top: 16px !important;
  padding-top: 16px !important;
}
.lvsp-tree-foot span{
  font-size: 10.5px !important;
}


/* ==== lovix-spark-pool-v293-precision-fix.css ==== */
/* Lovix v293 · Spark Pool precision fixes based on latest audit */

/* 1) Left tree width back to a tighter footprint, no internal scrolling */
.lvsp-content-grid{
  grid-template-columns: 338px minmax(0,1fr) !important;
  gap: 18px !important;
  align-items: start !important;
}
@media (max-width:1500px){
  .lvsp-content-grid{
    grid-template-columns: 322px minmax(0,1fr) !important;
    gap: 16px !important;
  }
}
@media (max-width:1120px){
  .lvsp-content-grid{ grid-template-columns:1fr !important; }
}

.lvsp-theme-tree-card{
  position: relative !important;
  top: auto !important;
  max-height: none !important;
  overflow: visible !important;
  border-radius: 28px !important;
  padding: 20px 18px 18px !important;
  box-shadow: 0 8px 22px rgba(0,0,0,.016) !important;
}

/* 2) Title area less cramped, stronger hierarchy */
.lvsp-tree-head{
  gap: 12px !important;
  padding-bottom: 14px !important;
}
.lvsp-tree-head h2{
  font-size: 16px !important;
  line-height: 22px !important;
  font-weight: 780 !important;
  letter-spacing: -.02em !important;
}
.lvsp-tree-head h2 span{
  margin-left: 6px !important;
  font-size: 11px !important;
  line-height: 14px !important;
  font-weight: 650 !important;
  color: #9B9B9B !important;
}
.lvsp-tree-head p{
  margin-top: 6px !important;
  font-size: 11px !important;
  line-height: 16px !important;
  color: #9E9E9E !important;
  font-weight: 620 !important;
}
.lvsp-tree-summary{
  margin: 14px 0 12px !important;
  padding: 11px 13px !important;
  border-radius: 18px !important;
}
.lvsp-tree-summary span{
  font-size: 10px !important;
  color:#A2A2A2 !important;
}
.lvsp-tree-summary b{
  font-size: 11.5px !important;
  line-height: 16px !important;
  color:#666 !important;
}

/* 3) Type / theme visual hierarchy + count/chevron order */
.lvsp-tree-group{
  padding: 13px 0 13px !important;
}
.lvsp-tree-type{
  position: relative !important;
  justify-content: flex-start !important;
  min-height: 32px !important;
  padding: 0 54px 0 8px !important;
  border-radius: 15px !important;
}
.lvsp-tree-type strong{
  font-size: 14.5px !important;
  line-height: 20px !important;
  font-weight: 730 !important;
  color: #343434 !important;
}
.lvsp-tree-type em{
  position: absolute !important;
  right: 4px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  min-width: 10px !important;
  text-align: right !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  color: #AAAAAA !important;
}
.lvsp-tree-themes{
  margin-top: 8px !important;
  gap: 4px !important;
}
.lvsp-tree-theme{
  min-height: 27px !important;
  padding: 0 8px 0 22px !important;
  border-radius: 13px !important;
}
.lvsp-tree-theme span{
  font-size: 12.5px !important;
  line-height: 17px !important;
  font-weight: 560 !important;
  color: #666 !important;
}
.lvsp-tree-theme em{
  font-size: 10.5px !important;
  font-weight: 650 !important;
  color: #B0B0B0 !important;
}
.lvsp-tree-theme.active span{
  font-weight: 620 !important;
  color:#202020 !important;
}

/* chevron should sit left of count and be smaller / cleaner */
.lvsp-v291-tree-toggle{
  right: 20px !important;
  top: 17px !important;
  width: 14px !important;
  height: 14px !important;
  border: 0 !important;
  background: transparent !important;
  padding: 0 !important;
}
.lvsp-v292-chevron{
  width: 7px !important;
  height: 7px !important;
  border-right-width: 1.4px !important;
  border-bottom-width: 1.4px !important;
}

/* 4) Fragment area should restore 3 cards per row on desktop */
.lvsp-listbox.lvsp-stripbox{
  padding: 22px 22px 24px !important;
}
.lvsp-listbox.lvsp-stripbox .lvsp-list-title{
  margin-bottom: 16px !important;
}
.lvsp-strip-grid{
  grid-template-columns: repeat(3, minmax(0,1fr)) !important;
  gap: 16px !important;
}
@media (max-width:1440px){
  .lvsp-strip-grid{
    grid-template-columns: repeat(2, minmax(0,1fr)) !important;
  }
}
@media (max-width:860px){
  .lvsp-strip-grid{
    grid-template-columns: 1fr !important;
  }
}

/* 5) Quick capture bar: fix the mixed-up layout */
.lvsp-quick{
  grid-template-columns: minmax(0,1fr) 190px 190px auto auto !important;
  align-items: center !important;
  gap: 10px !important;
  min-height: 74px !important;
  height: auto !important;
}
.lvsp-quick > *{ min-width:0; }
.lvsp-quick .lvsp-v291-combo{ width:100% !important; min-width:0 !important; }
.lvsp-quick .lvsp-v291-combo .lvsp-input,
.lvsp-quick #lvsp-quick-content,
.lvsp-quick #lvsp-quick-theme{ width:100% !important; }
.lvsp-quick [data-save-quick],
.lvsp-quick [data-open-capture]{
  justify-self: start !important;
  white-space: nowrap !important;
}
.lvsp-quick datalist{ display:none !important; }


/* ==== lovix-spark-pool-v294-collapse-quickfix.css ==== */
/* Lovix v294 · fix tree collapse + quick capture duplication */

/* Quick capture bar rebuilt cleanly */
.lvsp-quick.v294-clean{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) 220px 220px auto auto !important;
  gap:12px !important;
  align-items:center !important;
  min-height:86px !important;
  padding:18px !important;
}
.lvsp-quick.v294-clean .v294-hidden-source{ display:none !important; }
.lvsp-quick.v294-clean .v294-quick-type,
.lvsp-quick.v294-clean .v294-quick-theme{
  width:100% !important;
  min-width:0 !important;
}
.lvsp-quick.v294-clean .v294-quick-type,
.lvsp-quick.v294-clean .v294-quick-theme,
.lvsp-quick.v294-clean #lvsp-quick-content{
  height:54px !important;
  border-radius:22px !important;
}
.lvsp-quick.v294-clean .v294-quick-type::placeholder,
.lvsp-quick.v294-clean .v294-quick-theme::placeholder{
  color:#B1B1B1 !important;
}
.lvsp-quick.v294-clean [data-save-quick],
.lvsp-quick.v294-clean [data-open-capture]{
  white-space:nowrap !important;
  justify-self:start !important;
}

/* Theme tree collapse should always work and hide children fully */
.lvsp-tree-group.is-collapsed .lvsp-tree-themes,
.lvsp-tree-group.is-collapsed .lvsp-tree-empty{
  display:none !important;
}
.lvsp-tree-group .lvsp-v291-tree-toggle{
  cursor:pointer !important;
}


/* ==== lovix-spark-pool-v295-structural-cleanup.css ==== */
/* Lovix v295 · structural cleanup for tree / quick bar / drawer / inline card */

/* 1) quick capture should be truly usable */
.lvsp-quick.v295-ready{
  position:relative !important;
  z-index:5 !important;
  grid-template-columns:minmax(0,1fr) 220px 220px auto auto !important;
  gap:12px !important;
  align-items:center !important;
  min-height:84px !important;
  height:auto !important;
}
.lvsp-quick.v295-ready > *{ min-width:0 !important; pointer-events:auto !important; }
.lvsp-quick.v295-ready #lvsp-quick-content,
.lvsp-quick.v295-ready .v294-quick-type,
.lvsp-quick.v295-ready .v294-quick-theme,
.lvsp-quick.v295-ready #v295-quick-type,
.lvsp-quick.v295-ready #v295-quick-theme{
  position:relative !important;
  z-index:2 !important;
  cursor:text !important;
}
.lvsp-quick.v295-ready .lvsp-input,
.lvsp-quick.v295-ready #lvsp-quick-content{
  height:54px !important;
  border-radius:22px !important;
}

/* 2) inline open card density */
.lvsp-strip-detail{
  margin-top:10px !important;
  padding-top:10px !important;
  gap:7px !important;
}
.lvsp-strip-detail p{
  font-size:11px !important;
  line-height:16px !important;
}
.lvsp-v291-strip-use{
  gap:2px !important;
  padding:8px 10px !important;
  border-radius:14px !important;
}
.lvsp-v291-strip-use span{
  font-size:9.5px !important;
  line-height:13px !important;
}
.lvsp-v291-strip-use strong{
  font-size:10.5px !important;
  line-height:15px !important;
}
.lvsp-strip-chips{ gap:4px !important; }
.lvsp-strip .lvsp-actions-cell{ margin-top:0 !important; }

/* 3) home tree block should feel clickable */
.lvsp-tree-type{ cursor:pointer !important; }
.lvsp-tree-type strong{ pointer-events:none !important; }
.lvsp-tree-type em{ pointer-events:none !important; }

/* 4) drawer taxonomy area reset */
.lvsp-drawer .lvsp-v295-formgrid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px 16px;
  align-items:start;
}
.lvsp-drawer .lvsp-v295-field{
  display:grid;
  gap:6px;
}
.lvsp-drawer .lvsp-v295-field > span{
  font-size:12px;
  line-height:17px;
  font-weight:720;
  color:#7A7A7A;
}
.lvsp-drawer .lvsp-v295-help{
  display:block;
  margin-top:4px;
  font-size:10.5px;
  line-height:16px;
  color:#A0A0A0;
}
/* v413: do not hide current Spark detail Type / Theme controls. Old v295 replacement UI is disabled. */
.lvsp-drawer .lvsp-v291-combo,
.lvsp-drawer #v290-d-type,
.lvsp-drawer #v291-d-type,
.lvsp-drawer #v290-d-theme,
.lvsp-drawer #v291-d-theme,
.lvsp-drawer .lvsp-v290-detail-hint{ display:none !important; }
@media (max-width:860px){
  .lvsp-drawer .lvsp-v295-formgrid{ grid-template-columns:1fr; }
}


/* ==== lovix-spark-pool-v296-quickbar-hard-replace.css ==== */
/* Lovix v296 · hard replace Spark Pool quick capture so it is truly clickable */

/* Hide the unstable original quick bar; v296 renders a clean replacement below it. */
.lvsp-quick{
  display:none !important;
}

.lvsp-v296-quick{
  position:relative !important;
  z-index:50 !important;
  margin-bottom:14px !important;
  min-height:74px !important;
  padding:13px 14px !important;
  border:1px solid #E8E8E8 !important;
  border-radius:28px !important;
  background:#FFFFFF !important;
  box-shadow:0 14px 36px rgba(0,0,0,.035) !important;
  box-sizing:border-box !important;
  display:grid !important;
  grid-template-columns:minmax(0,1fr) 184px 184px auto auto !important;
  gap:10px !important;
  align-items:center !important;
  pointer-events:auto !important;
}
.lvsp-v296-quick *{
  pointer-events:auto !important;
  box-sizing:border-box !important;
}
.lvsp-v296-quick input{
  position:relative !important;
  z-index:2 !important;
  width:100% !important;
  height:42px !important;
  border:1px solid #E8E8E8 !important;
  border-radius:18px !important;
  background:#fff !important;
  color:#171717 !important;
  padding:0 14px !important;
  font-size:13px !important;
  outline:none !important;
  cursor:text !important;
  user-select:text !important;
}
.lvsp-v296-quick input:focus{
  border-color:#DDE9B6 !important;
  box-shadow:0 0 0 2px rgba(207,220,40,.18) !important;
}
.lvsp-v296-quick button{
  position:relative !important;
  z-index:2 !important;
  height:42px !important;
  border-radius:999px !important;
  border:1px solid #E8E8E8 !important;
  background:#fff !important;
  color:#555 !important;
  padding:0 18px !important;
  font-size:13px !important;
  font-weight:760 !important;
  white-space:nowrap !important;
  cursor:pointer !important;
}
.lvsp-v296-quick .primary{
  background:#111 !important;
  color:#fff !important;
  border-color:#111 !important;
}
.lvsp-v296-quick .ghost{
  background:#fff !important;
  color:#6B6B6B !important;
}
.lvsp-v296-quick .lvsp-v296-hint{
  grid-column:1 / -1;
  display:none;
  margin-top:2px;
  font-size:12px;
  line-height:18px;
  color:#8A8A8A;
}
.lvsp-v296-quick.has-error .lvsp-v296-hint{ display:block; color:#A36B5D; }
.lvsp-v296-quick.is-saved .lvsp-v296-hint{ display:block; color:#6B7522; }

@media (max-width:1200px){
  .lvsp-v296-quick{
    grid-template-columns:minmax(0,1fr) 150px 150px auto auto !important;
  }
}
@media (max-width:820px){
  .lvsp-v296-quick{
    grid-template-columns:1fr !important;
  }
}


/* ==== lovix-spark-pool-v297-quickbar-tree-final.css ==== */
/* Lovix v297 · final quickbar cleanup + tree count alignment */

/* Remove every previous quick capture implementation. v297 renders the only one. */
.lvsp-quick,
.lvsp-quick.v294-clean,
.lvsp-quick.v295-ready,
.lvsp-v296-quick{
  display:none !important;
  visibility:hidden !important;
  pointer-events:none !important;
  height:0 !important;
  min-height:0 !important;
  margin:0 !important;
  padding:0 !important;
  overflow:hidden !important;
}

.lvsp-v297-quick{
  position:relative !important;
  z-index:80 !important;
  margin:0 0 16px !important;
  padding:16px 18px !important;
  border:1px solid #E8E8E8 !important;
  border-radius:28px !important;
  background:#FFFFFF !important;
  box-shadow:0 14px 34px rgba(0,0,0,.032) !important;
  box-sizing:border-box !important;
  display:grid !important;
  grid-template-columns:minmax(0,1fr) 210px 210px auto auto !important;
  gap:12px !important;
  align-items:center !important;
  pointer-events:auto !important;
}
.lvsp-v297-quick *{
  box-sizing:border-box !important;
  pointer-events:auto !important;
}
.lvsp-v297-quick input{
  width:100% !important;
  height:48px !important;
  border:1px solid #E8E8E8 !important;
  border-radius:21px !important;
  background:#FFFFFF !important;
  padding:0 16px !important;
  color:#171717 !important;
  font-size:13px !important;
  line-height:48px !important;
  outline:none !important;
  user-select:text !important;
  cursor:text !important;
}
.lvsp-v297-quick input::placeholder{ color:#A9ADB4 !important; }
.lvsp-v297-quick input:focus{
  border-color:#D9E87E !important;
  box-shadow:0 0 0 2px rgba(207,220,40,.16) !important;
}
.lvsp-v297-quick button{
  height:48px !important;
  border-radius:999px !important;
  border:1px solid #E8E8E8 !important;
  background:#FFFFFF !important;
  color:#666 !important;
  padding:0 20px !important;
  font-size:13px !important;
  line-height:48px !important;
  font-weight:760 !important;
  white-space:nowrap !important;
  cursor:pointer !important;
}
.lvsp-v297-quick .primary{
  background:#111111 !important;
  color:#FFFFFF !important;
  border-color:#111111 !important;
}
.lvsp-v297-quick .ghost{
  background:#FFFFFF !important;
  color:#666666 !important;
}
.lvsp-v297-quick .lvsp-v297-msg{
  grid-column:1 / -1;
  display:none;
  margin-top:0;
  font-size:12px;
  line-height:18px;
}
.lvsp-v297-quick.has-error .lvsp-v297-msg{ display:block; color:#A36B5D; }
.lvsp-v297-quick.is-saved .lvsp-v297-msg{ display:block; color:#6B7522; }

/* Tree counts: exact same right edge for type and theme rows */
.lvsp-theme-tree-card .lvsp-tree-type,
.lvsp-theme-tree-card .lvsp-tree-theme{
  position:relative !important;
  display:flex !important;
  align-items:center !important;
  width:100% !important;
}
.lvsp-theme-tree-card .lvsp-tree-type{
  padding-right:54px !important;
}
.lvsp-theme-tree-card .lvsp-tree-theme{
  padding-right:34px !important;
}
.lvsp-theme-tree-card .lvsp-tree-type em,
.lvsp-theme-tree-card .lvsp-tree-theme em{
  position:absolute !important;
  right:8px !important;
  top:50% !important;
  transform:translateY(-50%) !important;
  width:18px !important;
  min-width:18px !important;
  text-align:right !important;
  font-variant-numeric:tabular-nums !important;
  color:#A5A5A5 !important;
}
.lvsp-theme-tree-card .lvsp-v291-tree-toggle{
  right:32px !important;
  top:50% !important;
  transform:translateY(-50%) !important;
  width:14px !important;
  height:14px !important;
}

@media (max-width:1200px){
  .lvsp-v297-quick{
    grid-template-columns:minmax(0,1fr) 170px 170px auto auto !important;
  }
}
@media (max-width:860px){
  .lvsp-v297-quick{
    grid-template-columns:1fr !important;
  }
}


/* ==== lovix-spark-pool-v299-load-hotfix.css ==== */
/* Lovix v299 · Spark Pool load hotfix
   Purpose: keep Spark Pool preview loadable by staying on the stable v297 layer.
   This file intentionally does not add a new taxonomy runtime. */
.lvsp-page .lvsp-v298-quick,
.lvsp-v298-backdrop,
.lvsp-v298-manager{display:none!important;}


/* ==== lovix-spark-pool-v318-hierarchy-interaction-audit.css ==== */
/* Lovix Spark Pool v318 · hierarchy interaction + manager polish
   Scope: Spark Pool only. Keeps global sidebar and other pages untouched.
*/

body:has(.lvsp-v4) .lvsp-content-grid{
  grid-template-columns:300px minmax(0,1fr) !important;
  gap:24px !important;
  align-items:start !important;
}
body:has(.lvsp-v4) .lvsp-theme-tree-card{
  width:300px !important;
  max-width:300px !important;
  padding:22px 20px 18px !important;
  border-radius:30px !important;
  overflow:visible !important;
}
body:has(.lvsp-v4) .lvsp-tree-head{
  gap:12px !important;
  align-items:flex-start !important;
  padding-bottom:14px !important;
}
body:has(.lvsp-v4) .lvsp-tree-head h2{
  font-size:18px !important;
  line-height:24px !important;
  letter-spacing:-.03em !important;
}
body:has(.lvsp-v4) .lvsp-tree-head h2 span{
  font-size:11px !important;
  color:#9A9A9A !important;
  margin-left:6px !important;
}
body:has(.lvsp-v4) .lvsp-tree-head p{
  font-size:11px !important;
  line-height:16px !important;
  color:#9A9A9A !important;
}
body:has(.lvsp-v4) .lvsp-tree-reset{
  width:auto !important;
  min-width:42px !important;
  height:30px !important;
  padding:0 12px !important;
  border-radius:999px !important;
}
body:has(.lvsp-v4) .lvsp-tree-summary{
  min-height:54px !important;
  margin:16px 0 20px !important;
  padding:12px 14px !important;
  border-radius:18px !important;
}
body:has(.lvsp-v4) .lvsp-tree-body{
  display:grid !important;
  gap:0 !important;
}
body:has(.lvsp-v4) .lvsp-tree-group{
  position:relative !important;
  border-bottom:1px solid #F0F0EA !important;
  padding:13px 0 12px !important;
}
body:has(.lvsp-v4) .lvsp-tree-group:last-child{border-bottom:0 !important;}
body:has(.lvsp-v4) .lvsp-tree-type,
body:has(.lvsp-v4) .lvsp-tree-theme{
  position:relative !important;
  display:flex !important;
  align-items:center !important;
  width:100% !important;
  border:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  cursor:pointer !important;
  text-align:left !important;
}
body:has(.lvsp-v4) .lvsp-tree-type{
  min-height:32px !important;
  padding:0 68px 0 0 !important;
  border-radius:14px !important;
}
body:has(.lvsp-v4) .lvsp-tree-type strong{
  display:block !important;
  width:100% !important;
  min-width:0 !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  white-space:nowrap !important;
  font-size:15px !important;
  line-height:21px !important;
  font-weight:760 !important;
  color:#262626 !important;
}
body:has(.lvsp-v4) .lvsp-tree-themes{
  display:grid !important;
  gap:4px !important;
  margin-top:4px !important;
}
body:has(.lvsp-v4) .lvsp-tree-theme{
  min-height:28px !important;
  padding:0 68px 0 16px !important;
  border-radius:12px !important;
}
body:has(.lvsp-v4) .lvsp-tree-theme span{
  display:block !important;
  width:100% !important;
  min-width:0 !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  white-space:nowrap !important;
  font-size:13px !important;
  line-height:18px !important;
  font-weight:520 !important;
  color:#5E5E5E !important;
}
body:has(.lvsp-v4) .lvsp-tree-type em,
body:has(.lvsp-v4) .lvsp-tree-theme em{
  position:absolute !important;
  right:35px !important;
  top:50% !important;
  transform:translateY(-50%) !important;
  width:22px !important;
  min-width:22px !important;
  text-align:right !important;
  font-size:12px !important;
  line-height:16px !important;
  color:#A3A3A3 !important;
  font-weight:700 !important;
  font-variant-numeric:tabular-nums !important;
}
body:has(.lvsp-v4) .lvsp-v291-tree-toggle{
  position:absolute !important;
  right:7px !important;
  top:19px !important;
  transform:none !important;
  width:22px !important;
  height:22px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  border:1px solid #ECE8DE !important;
  border-radius:999px !important;
  background:#FFFFFF !important;
  color:#9A9A9A !important;
  font-size:10px !important;
  line-height:1 !important;
  cursor:pointer !important;
}
body:has(.lvsp-v4) .lvsp-tree-type:hover,
body:has(.lvsp-v4) .lvsp-tree-theme:hover{
  background:#FAFAF5 !important;
}
body:has(.lvsp-v4) .lvsp-tree-type.active,
body:has(.lvsp-v4) .lvsp-tree-theme.active{
  background:#F5F8EA !important;
  color:#4F5D18 !important;
}
body:has(.lvsp-v4) .lvsp-tree-type.active strong,
body:has(.lvsp-v4) .lvsp-tree-theme.active span{
  color:#4F5D18 !important;
}
body:has(.lvsp-v4) .lvsp-tree-empty{
  padding:6px 0 2px 16px !important;
  font-size:12px !important;
  line-height:18px !important;
  color:#B0B0B0 !important;
}
body:has(.lvsp-v4) .lvsp-tree-foot{
  margin-top:16px !important;
  padding-top:14px !important;
  align-items:center !important;
}
body:has(.lvsp-v4) .lvsp-tree-foot span{
  font-size:12px !important;
  color:#9D9D9D !important;
}
body:has(.lvsp-v4) .lvsp-tree-foot button{
  height:34px !important;
  padding:0 14px !important;
  border-radius:999px !important;
  white-space:nowrap !important;
}

/* Fragment list: keep three cards per row on desktop, restore breathing. */
body:has(.lvsp-v4) .lvsp-strip-grid,
body:has(.lvsp-v4) .lvsp-strips-grid{
  display:grid !important;
  grid-template-columns:repeat(3, minmax(0,1fr)) !important;
  gap:18px 20px !important;
  align-items:start !important;
}
body:has(.lvsp-v4) .lvsp-strip{
  min-width:0 !important;
}
body:has(.lvsp-v4) .lvsp-strip.is-open .lvsp-strip-detail{
  margin-top:14px !important;
  padding-top:12px !important;
  gap:8px !important;
}
body:has(.lvsp-v4) .lvsp-strip.is-open .lvsp-v291-strip-use{
  margin:0 0 6px !important;
}

/* v318 taxonomy manager redesign */
.lvsp-v291-shell:has(.lvsp-v291-taxonomy){
  width:min(1420px, calc(100vw - 44px)) !important;
  max-height:88vh !important;
  border-radius:30px !important;
}
.lvsp-v291-shell:has(.lvsp-v291-taxonomy) > header{
  padding:24px 28px 18px !important;
}
.lvsp-v291-shell:has(.lvsp-v291-taxonomy) .lvsp-v291-body{
  padding:24px 28px 28px !important;
  overflow:auto !important;
}
.lvsp-v291-taxonomy{
  grid-template-columns:340px minmax(0,1fr) !important;
  gap:30px !important;
  align-items:start !important;
}
.lvsp-v291-side{
  display:grid !important;
  gap:20px !important;
  align-content:start !important;
  padding-right:0 !important;
}
.lvsp-v291-panel,
.lvsp-v291-note{
  border:1px solid #EDE8DD !important;
  border-radius:24px !important;
  padding:20px !important;
  background:#FFFFFF !important;
}
.lvsp-v291-panel{
  display:grid !important;
  gap:12px !important;
}
.lvsp-v291-panel h3{
  margin:0 0 2px !important;
  font-size:16px !important;
  line-height:22px !important;
  font-weight:760 !important;
}
.lvsp-v291-panel .lvsp-input,
.lvsp-v291-panel select.lvsp-input{
  width:100% !important;
  height:46px !important;
  margin:0 !important;
  border-radius:18px !important;
  font-size:13px !important;
  font-weight:420 !important;
  box-sizing:border-box !important;
}
.lvsp-v291-panel .lvsp-v291-btn.full{
  height:42px !important;
  margin-top:0 !important;
}
.lvsp-v291-main{
  display:grid !important;
  gap:16px !important;
  min-width:0 !important;
  padding-right:14px !important;
}
.lvsp-v291-typecard{
  border:1px solid #EFE6DA !important;
  border-radius:22px !important;
  padding:0 !important;
  background:#FFFFFF !important;
  overflow:hidden !important;
  box-shadow:none !important;
}
.lvsp-v291-typecard.is-dragging,
.lvsp-v291-theme-row.is-dragging{
  opacity:.56 !important;
}
.lvsp-v291-typehead{
  display:grid !important;
  grid-template-columns:22px minmax(0,1fr) 164px !important;
  align-items:center !important;
  gap:12px !important;
  padding:14px 18px !important;
  min-height:66px !important;
  border-bottom:1px solid #F2ECE2 !important;
}
.lvsp-v291-drag{
  width:16px !important;
  height:24px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  color:#B8B2AA !important;
  cursor:grab !important;
  user-select:none !important;
  font-size:16px !important;
  line-height:1 !important;
}
.lvsp-v291-typehead strong{
  display:block !important;
  font-size:18px !important;
  line-height:24px !important;
  font-weight:780 !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
}
.lvsp-v291-typehead span{
  margin-top:3px !important;
  font-size:11px !important;
  line-height:15px !important;
  color:#A3A3A3 !important;
}
.lvsp-v291-actions{
  display:grid !important;
  grid-template-columns:76px 76px !important;
  gap:8px !important;
  justify-content:end !important;
  align-items:center !important;
}
.lvsp-v291-btn{
  height:34px !important;
  padding:0 13px !important;
  border-radius:999px !important;
  font-size:12px !important;
  line-height:34px !important;
  font-weight:700 !important;
  box-sizing:border-box !important;
}
.lvsp-v291-theme-list{
  display:grid !important;
  gap:8px !important;
  padding:10px 14px 14px !important;
  margin:0 !important;
}
.lvsp-v291-theme-row{
  display:grid !important;
  grid-template-columns:22px minmax(0,1fr) 164px !important;
  gap:12px !important;
  align-items:center !important;
  min-height:58px !important;
  padding:10px 12px !important;
  border:1px solid #F1ECE2 !important;
  border-radius:16px !important;
  background:#FFFFFF !important;
}
.lvsp-v291-theme-row > div:first-child:not(.lvsp-v291-drag){
  min-width:0 !important;
}
.lvsp-v291-theme-row b{
  display:block !important;
  font-size:14px !important;
  line-height:19px !important;
  font-weight:680 !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
}
.lvsp-v291-theme-row span{
  display:block !important;
  margin-top:2px !important;
  font-size:11px !important;
  line-height:15px !important;
  color:#A3A3A3 !important;
}
.lvsp-v291-empty{
  padding:12px !important;
  color:#B0B0B0 !important;
  font-size:12px !important;
}
.lvsp-v291-shell:has(.lvsp-v291-taxonomy) footer{
  padding:16px 28px !important;
}

@media (max-width:1180px){
  body:has(.lvsp-v4) .lvsp-strip-grid,
  body:has(.lvsp-v4) .lvsp-strips-grid{grid-template-columns:repeat(2,minmax(0,1fr)) !important;}
  .lvsp-v291-taxonomy{grid-template-columns:1fr !important;}
}
@media (max-width:880px){
  body:has(.lvsp-v4) .lvsp-content-grid{grid-template-columns:1fr !important;}
  body:has(.lvsp-v4) .lvsp-theme-tree-card{width:100% !important;max-width:none !important;}
  body:has(.lvsp-v4) .lvsp-strip-grid,
  body:has(.lvsp-v4) .lvsp-strips-grid{grid-template-columns:1fr !important;}
}


/* ==== lovix-spark-pool-v319-two-issue-fix.css ==== */
/* Lovix Spark Pool v319 · two-point fix
   1) Category hierarchy manager: restore stable non-overlap layout, keep second-level rows visible.
   2) Keep current sidebar typography/size unchanged; only support real right-side filtering via JS.
*/

/* Manager modal: avoid card/action overlap and keep secondary rows visible */
.lvsp-v291-shell:has(.lvsp-v291-taxonomy){
  width:min(1420px, calc(100vw - 44px)) !important;
  max-height:88vh !important;
  overflow:hidden !important;
}

.lvsp-v291-shell:has(.lvsp-v291-taxonomy) .lvsp-v291-body{
  height:calc(88vh - 142px) !important;
  padding:24px 28px 26px !important;
  overflow:hidden !important;
  box-sizing:border-box !important;
}

.lvsp-v291-taxonomy{
  height:100% !important;
  display:grid !important;
  grid-template-columns:340px minmax(0,1fr) !important;
  gap:30px !important;
  align-items:stretch !important;
  min-height:0 !important;
}

.lvsp-v291-side{
  min-height:0 !important;
  max-height:100% !important;
  overflow-y:auto !important;
  overflow-x:hidden !important;
  display:grid !important;
  align-content:start !important;
  gap:20px !important;
  padding:0 6px 28px 0 !important;
  box-sizing:border-box !important;
}

.lvsp-v291-main{
  min-width:0 !important;
  min-height:0 !important;
  max-height:100% !important;
  overflow-y:auto !important;
  overflow-x:hidden !important;
  display:grid !important;
  align-content:start !important;
  gap:14px !important;
  padding:0 14px 96px 0 !important;
  box-sizing:border-box !important;
}

.lvsp-v291-typecard{
  position:relative !important;
  display:block !important;
  overflow:visible !important;
  height:auto !important;
  min-height:auto !important;
  border:1px solid #EFE6DA !important;
  border-radius:22px !important;
  background:#FFFFFF !important;
}

.lvsp-v291-typehead{
  position:relative !important;
  display:grid !important;
  grid-template-columns:24px minmax(0,1fr) 172px !important;
  gap:12px !important;
  align-items:center !important;
  min-height:72px !important;
  height:auto !important;
  padding:14px 18px !important;
  box-sizing:border-box !important;
  border-bottom:1px solid #F2ECE2 !important;
}

.lvsp-v291-typehead > div:not(.lvsp-v291-drag):first-of-type{
  min-width:0 !important;
  overflow:hidden !important;
}

.lvsp-v291-typehead strong{
  display:block !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
}

.lvsp-v291-typehead span{
  display:block !important;
  margin-top:3px !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
}

.lvsp-v291-actions{
  width:172px !important;
  min-width:172px !important;
  display:grid !important;
  grid-template-columns:78px 78px !important;
  gap:8px !important;
  justify-content:end !important;
  align-items:center !important;
}

.lvsp-v291-btn{
  height:34px !important;
  min-width:0 !important;
  padding:0 13px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  box-sizing:border-box !important;
  white-space:nowrap !important;
}

.lvsp-v291-theme-list{
  position:relative !important;
  display:grid !important;
  gap:8px !important;
  padding:10px 14px 14px !important;
  margin:0 !important;
  min-height:0 !important;
  overflow:visible !important;
}

.lvsp-v291-theme-row{
  position:relative !important;
  display:grid !important;
  grid-template-columns:24px minmax(0,1fr) 172px !important;
  gap:12px !important;
  align-items:center !important;
  min-height:58px !important;
  height:auto !important;
  padding:10px 12px !important;
  box-sizing:border-box !important;
  border:1px solid #F1ECE2 !important;
  border-radius:16px !important;
  background:#FFFFFF !important;
  overflow:visible !important;
}

.lvsp-v291-theme-row > div:not(.lvsp-v291-drag):first-of-type{
  min-width:0 !important;
  overflow:hidden !important;
}

.lvsp-v291-theme-row b,
.lvsp-v291-theme-row span{
  display:block !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
}

.lvsp-v291-drag{
  flex:0 0 16px !important;
  width:16px !important;
  justify-self:center !important;
  align-self:center !important;
}

.lvsp-v291-empty{
  min-height:42px !important;
  display:flex !important;
  align-items:center !important;
}

/* JS direct filter state: right fragments really change after clicking second-level theme */
body:has(.lvsp-v4) .lvsp-strip[data-v319-hidden="1"]{
  display:none !important;
}

body:has(.lvsp-v4) .lvsp-v319-filter-empty{
  grid-column:1 / -1 !important;
  min-height:118px !important;
  border:1px dashed #E7E7E2 !important;
  border-radius:22px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  color:#9A9A9A !important;
  font-size:13px !important;
}


/* ==== lovix-spark-pool-v320-controlled-controls.css ==== */
/* Lovix Spark Pool v320 · controlled quickbar + filter controls
   Root cause fixed:
   - previous quickbar used native datalist / select-polish mixed controls, so popups drifted and selection did not reliably mutate the Spark data state.
   - toolbar filters depended on enhanced native <select> controls while v291/v318 kept rebuilding options, so the visible menu could open but the click did not always reach the data filter.
   This patch replaces ONLY Spark Pool quick capture and toolbar filter controls with one controlled component layer.
*/

body:has(.lvsp-v4) .lvsp-quick,
body:has(.lvsp-v4) .lvsp-v296-quick,
body:has(.lvsp-v4) .lvsp-v297-quick{
  display:none !important;
  visibility:hidden !important;
  pointer-events:none !important;
  height:0 !important;
  min-height:0 !important;
  margin:0 !important;
  padding:0 !important;
  overflow:hidden !important;
}

body:has(.lvsp-v4) .lvsp-toolbar .lvsp-filters{
  display:none !important;
  visibility:hidden !important;
  pointer-events:none !important;
  height:0 !important;
  min-height:0 !important;
  margin:0 !important;
  padding:0 !important;
  overflow:hidden !important;
}

.lvsp-v320-quick,
.lvsp-v320-filterbar{
  position:relative !important;
  z-index:120 !important;
  box-sizing:border-box !important;
  font-family:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
}

.lvsp-v320-quick{
  margin:0 0 16px !important;
  padding:16px 18px !important;
  border:1px solid #E8E8E8 !important;
  border-radius:28px !important;
  background:#FFFFFF !important;
  box-shadow:0 14px 34px rgba(0,0,0,.032) !important;
  display:grid !important;
  grid-template-columns:minmax(0,1fr) 210px 230px auto auto !important;
  gap:12px !important;
  align-items:center !important;
}

.lvsp-v320-filterbar{
  display:flex !important;
  flex-wrap:wrap !important;
  gap:10px !important;
  align-items:center !important;
  padding-top:14px !important;
  margin-top:12px !important;
  border-top:1px solid #F0F0F0 !important;
}

.lvsp-v320-input,
.lvsp-v320-select-btn,
.lvsp-v320-chip,
.lvsp-v320-action{
  box-sizing:border-box !important;
  border:1px solid #E6E6E6 !important;
  background:#FFFFFF !important;
  color:#5F5F5F !important;
  outline:none !important;
  box-shadow:none !important;
  font-weight:650 !important;
  letter-spacing:-.01em !important;
  transition:border-color .14s ease, background-color .14s ease, color .14s ease, box-shadow .14s ease !important;
}

.lvsp-v320-input{
  width:100% !important;
  height:48px !important;
  border-radius:21px !important;
  padding:0 16px !important;
  font-size:13px !important;
  line-height:48px !important;
  font-weight:430 !important;
  color:#171717 !important;
}
.lvsp-v320-input::placeholder{ color:#A9ADB4 !important; }
.lvsp-v320-input:focus{
  border-color:#D9E87E !important;
  box-shadow:0 0 0 2px rgba(207,220,40,.16) !important;
}
.lvsp-v320-input.is-error{
  border-color:#E6B8A8 !important;
  box-shadow:0 0 0 2px rgba(230,184,168,.18) !important;
}

.lvsp-v320-select{
  position:relative !important;
  min-width:0 !important;
}
.lvsp-v320-select-btn{
  width:100% !important;
  height:48px !important;
  min-height:48px !important;
  border-radius:21px !important;
  padding:0 42px 0 16px !important;
  font-size:13px !important;
  line-height:1 !important;
  text-align:left !important;
  cursor:pointer !important;
  display:flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  position:relative !important;
}
.lvsp-v320-select-btn::after{
  content:"" !important;
  position:absolute !important;
  right:17px !important;
  top:50% !important;
  width:8px !important;
  height:8px !important;
  border-right:1.7px solid currentColor !important;
  border-bottom:1.7px solid currentColor !important;
  transform:translateY(-62%) rotate(45deg) !important;
  transform-origin:center !important;
  opacity:.86 !important;
}
.lvsp-v320-select.is-open .lvsp-v320-select-btn::after{
  transform:translateY(-30%) rotate(-135deg) !important;
}
.lvsp-v320-select.is-open .lvsp-v320-select-btn,
.lvsp-v320-select-btn:hover{
  border-color:#DDE9B6 !important;
  background:#FBFCF7 !important;
  color:#3D4812 !important;
}

.lvsp-v320-select.compact{
  flex:0 0 auto !important;
}
.lvsp-v320-select.compact .lvsp-v320-select-btn{
  height:34px !important;
  min-height:34px !important;
  border-radius:999px !important;
  padding:0 36px 0 14px !important;
  font-size:12px !important;
  font-weight:730 !important;
}
.lvsp-v320-select.compact[data-key="type"]{ width:154px !important; }
.lvsp-v320-select.compact[data-key="theme"]{ width:172px !important; }
.lvsp-v320-select.compact[data-key="status"]{ width:170px !important; }
.lvsp-v320-select.compact[data-key="value"]{ width:150px !important; }

.lvsp-v320-menu{
  position:absolute !important;
  top:calc(100% + 8px) !important;
  left:0 !important;
  z-index:2147483602 !important;
  width:max(100%, 220px) !important;
  max-width:min(420px, calc(100vw - 24px)) !important;
  max-height:306px !important;
  overflow:auto !important;
  scrollbar-width:none !important;
  box-sizing:border-box !important;
  padding:8px !important;
  border:1px solid #E7E7E7 !important;
  border-radius:18px !important;
  background:#FFFFFF !important;
  box-shadow:0 18px 48px rgba(0,0,0,.10) !important;
  display:none !important;
}
.lvsp-v320-menu::-webkit-scrollbar{ display:none !important; }
.lvsp-v320-select.is-open .lvsp-v320-menu{ display:block !important; }

.lvsp-v320-option{
  width:100% !important;
  min-height:36px !important;
  border:0 !important;
  border-radius:12px !important;
  background:transparent !important;
  color:#606060 !important;
  padding:8px 10px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:10px !important;
  cursor:pointer !important;
  box-sizing:border-box !important;
  font-size:13px !important;
  line-height:16px !important;
  font-weight:560 !important;
  text-align:left !important;
}
.lvsp-v320-option:hover{
  background:#FBFCF7 !important;
  color:#3D4812 !important;
}
.lvsp-v320-option.is-active{
  background:#171717 !important;
  color:#FFFFFF !important;
}
.lvsp-v320-option .check{
  opacity:0 !important;
  font-size:12px !important;
}
.lvsp-v320-option.is-active .check{ opacity:1 !important; }

.lvsp-v320-combo{
  position:relative !important;
  min-width:0 !important;
}
.lvsp-v320-combo .lvsp-v320-input{
  padding-right:42px !important;
  cursor:text !important;
}
.lvsp-v320-combo::after{
  content:"" !important;
  position:absolute !important;
  right:17px !important;
  top:50% !important;
  width:8px !important;
  height:8px !important;
  border-right:1.7px solid #5F5F5F !important;
  border-bottom:1.7px solid #5F5F5F !important;
  transform:translateY(-62%) rotate(45deg) !important;
  pointer-events:none !important;
}
.lvsp-v320-combo.is-open::after{
  transform:translateY(-30%) rotate(-135deg) !important;
}

.lvsp-v320-combo .lvsp-v320-menu{
  width:max(100%, 260px) !important;
}

.lvsp-v320-chip{
  height:34px !important;
  min-height:34px !important;
  border-radius:999px !important;
  padding:0 16px !important;
  font-size:12px !important;
  line-height:34px !important;
  font-weight:730 !important;
  cursor:pointer !important;
}
.lvsp-v320-chip.is-active{
  background:#171717 !important;
  color:#FFFFFF !important;
  border-color:#171717 !important;
}

.lvsp-v320-action{
  height:48px !important;
  min-height:48px !important;
  border-radius:999px !important;
  padding:0 20px !important;
  font-size:13px !important;
  line-height:48px !important;
  font-weight:760 !important;
  cursor:pointer !important;
  white-space:nowrap !important;
}
.lvsp-v320-action.primary{
  background:#111111 !important;
  color:#FFFFFF !important;
  border-color:#111111 !important;
}
.lvsp-v320-action.ghost{
  background:#FFFFFF !important;
  color:#666666 !important;
}

.lvsp-v320-message{
  grid-column:1 / -1 !important;
  display:none !important;
  margin:0 !important;
  font-size:12px !important;
  line-height:18px !important;
}
.lvsp-v320-quick.has-error .lvsp-v320-message{
  display:block !important;
  color:#A36B5D !important;
}
.lvsp-v320-quick.is-saved .lvsp-v320-message{
  display:block !important;
  color:#6B7522 !important;
}

body:has(.lvsp-v4) .lvsp-strip[data-v320-hidden="1"]{
  display:none !important;
}
.lvsp-v320-empty{
  grid-column:1 / -1 !important;
  min-height:118px !important;
  border:1px dashed #E7E7E2 !important;
  border-radius:22px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  color:#9A9A9A !important;
  font-size:13px !important;
}

@media (max-width:1200px){
  .lvsp-v320-quick{
    grid-template-columns:minmax(0,1fr) 180px 190px auto auto !important;
  }
}
@media (max-width:920px){
  .lvsp-v320-quick{
    grid-template-columns:1fr !important;
  }
  .lvsp-v320-filterbar{
    display:grid !important;
    grid-template-columns:1fr 1fr !important;
  }
  .lvsp-v320-select.compact{ width:100% !important; }
}


/* Lovix Spark Pool v321 · dropdown stacking + tree interaction precision */
body:has(.lvsp-v4) .lvsp-page,
body:has(.lvsp-v4) .lvsp-v4,
body:has(.lvsp-v4) .lvsp-content-grid,
body:has(.lvsp-v4) .lvsp-toolbar,
body:has(.lvsp-v4) .lvsp-stripbox{
  overflow:visible !important;
}
body:has(.lvsp-v4) .lvsp-toolbar{
  position:relative !important;
  z-index:10 !important;
}
body:has(.lvsp-v4) .lvsp-v320-quick{
  z-index:1000000 !important;
  overflow:visible !important;
  isolation:isolate !important;
}
body:has(.lvsp-v4) .lvsp-v320-quick .lvsp-v320-select,
body:has(.lvsp-v4) .lvsp-v320-quick .lvsp-v320-combo{
  z-index:1000001 !important;
}
body:has(.lvsp-v4) .lvsp-v320-quick .lvsp-v320-select.is-open,
body:has(.lvsp-v4) .lvsp-v320-quick .lvsp-v320-combo.is-open{
  z-index:1000002 !important;
}
body:has(.lvsp-v4) .lvsp-v320-menu{
  z-index:2147483647 !important;
}
body:has(.lvsp-v4) .lvsp-v320-select-btn,
body:has(.lvsp-v4) .lvsp-v320-input{
  position:relative !important;
}
body:has(.lvsp-v4) .lvsp-tree-type,
body:has(.lvsp-v4) .lvsp-tree-theme{
  cursor:pointer !important;
  pointer-events:auto !important;
}
body:has(.lvsp-v4) .lvsp-tree-type{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) 26px 22px !important;
  align-items:center !important;
  column-gap:6px !important;
}
body:has(.lvsp-v4) .lvsp-tree-type strong{
  min-width:0 !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
}
body:has(.lvsp-v4) .lvsp-tree-type em{
  justify-self:end !important;
  text-align:right !important;
  min-width:16px !important;
}
body:has(.lvsp-v4) .lvsp-tree-theme{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) 26px !important;
  align-items:center !important;
  column-gap:8px !important;
}
body:has(.lvsp-v4) .lvsp-tree-theme span{
  min-width:0 !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
}
body:has(.lvsp-v4) .lvsp-tree-theme em{
  justify-self:end !important;
  text-align:right !important;
  min-width:16px !important;
}


/* ==== lovix-spark-pool-v322-modal-stack-fix.css ==== */
/* Lovix Spark Pool v322 · modal stacking hotfix
   Fix: the controlled quickbar from v320/v321 used an extreme z-index, so when the native Quick Capture modal opened, the quickbar floated above the modal/backdrop and looked like a second card pasted onto the dialog.
   Rule: page quickbar/dropdowns may sit above Spark content, but must ALWAYS sit below modal/backdrop. */

body:has(.lvsp-v4) .lvsp-toolbar{
  position:relative !important;
  z-index:40 !important;
  overflow:visible !important;
}

body:has(.lvsp-v4) .lvsp-v320-quick,
body:has(.lvsp-v4) .lvsp-v320-filterbar{
  position:relative !important;
  z-index:50 !important;
  overflow:visible !important;
  isolation:auto !important;
}

body:has(.lvsp-v4) .lvsp-v320-quick .lvsp-v320-select,
body:has(.lvsp-v4) .lvsp-v320-quick .lvsp-v320-combo,
body:has(.lvsp-v4) .lvsp-v320-filterbar .lvsp-v320-select{
  z-index:55 !important;
}

body:has(.lvsp-v4) .lvsp-v320-quick .lvsp-v320-select.is-open,
body:has(.lvsp-v4) .lvsp-v320-quick .lvsp-v320-combo.is-open,
body:has(.lvsp-v4) .lvsp-v320-filterbar .lvsp-v320-select.is-open{
  z-index:70 !important;
}

body:has(.lvsp-v4) .lvsp-v320-menu{
  z-index:90 !important;
}

/* Modal/backdrop are the top layer. Keep them above every page-level quickbar and filter dropdown. */
body:has(.lvsp-v4) .lvsp-backdrop,
body:has(.lvsp-v4) .lvsp-drawer-backdrop{
  z-index:10000 !important;
}
body:has(.lvsp-v4) .lvsp-modal,
body:has(.lvsp-v4) .lvsp-drawer{
  z-index:10010 !important;
}

/* When any Spark modal/drawer is open, page-level controlled bars must not intercept clicks or visually float over it. */
body:has(.lvsp-modal) .lvsp-v320-quick,
body:has(.lvsp-modal) .lvsp-v320-filterbar,
body:has(.lvsp-drawer) .lvsp-v320-quick,
body:has(.lvsp-drawer) .lvsp-v320-filterbar{
  z-index:0 !important;
  pointer-events:none !important;
}
body:has(.lvsp-modal) .lvsp-v320-menu,
body:has(.lvsp-drawer) .lvsp-v320-menu{
  display:none !important;
}


/* ==== lovix-tasks-v312-board-system-audit.css ==== */
/* Lovix v312 · Task board interaction/system polish
   Scope: Today Tasks, Plan Day scheduler, task add/edit modal. */

/* Planner modal: make the work area actually scrollable, not clipped */
.lvdc-v311-modal{
  width:min(1280px, calc(100vw - 44px)) !important;
  height:min(88vh, 860px) !important;
  max-height:min(88vh, 860px) !important;
  grid-template-rows:auto auto minmax(0,1fr) auto !important;
}
.lvdc-v311-main{
  min-height:0 !important;
  overflow:hidden !important;
  padding:20px 30px 22px !important;
}
.lvdc-v311-panel{
  min-height:0 !important;
  display:grid !important;
  grid-template-rows:58px minmax(0,1fr) !important;
}
.lvdc-v311-list,
.lvdc-v311-timeline{
  min-height:0 !important;
  overflow-y:auto !important;
  overscroll-behavior:contain !important;
  padding:14px !important;
  scrollbar-width:thin;
}
.lvdc-v311-list::-webkit-scrollbar,
.lvdc-v311-timeline::-webkit-scrollbar{ width:8px; }
.lvdc-v311-list::-webkit-scrollbar-thumb,
.lvdc-v311-timeline::-webkit-scrollbar-thumb{ background:#D9D9D9; border-radius:999px; }
.lvdc-v311-foot{
  background:rgba(255,255,255,.97) !important;
  backdrop-filter:blur(10px) !important;
}

/* Less Excel, more execution scheduler */
.lvdc-v311-task{
  min-height:68px !important;
  padding:11px 12px !important;
}
.lvdc-v311-task-title,
.lvdc-v311-line-title{
  font-size:13.2px !important;
  line-height:18px !important;
  font-weight:720 !important;
}
.lvdc-v311-task-meta,
.lvdc-v311-line-meta{
  font-size:10.8px !important;
  color:#969696 !important;
}
.lvdc-v311-task.priority-A,
.lvdc-v311-lineitem.priority-A .lvdc-v311-linecard{
  border-color:#E7D6B8 !important;
  background:linear-gradient(180deg,#FFFFFF 0%,#FFFCF6 100%) !important;
}
.lvdc-v312-a-dot{
  display:inline-block;
  width:7px;
  height:7px;
  border-radius:999px;
  background:#E8883B;
  margin-right:7px;
  transform:translateY(-1px);
  box-shadow:0 0 0 3px rgba(232,136,59,.10);
}
.lvdc-v311-index{
  font-size:11.5px !important;
}
.lvdc-v311-lineitem.priority-A .lvdc-v311-index{
  border-color:#F0D2B0 !important;
  background:#FFF7EE !important;
  color:#A85A19 !important;
}
.lvdc-v311-time-row{
  grid-template-columns:minmax(88px,1fr) 14px minmax(88px,1fr) auto !important;
}
.lvdc-v311-timebox{
  height:32px !important;
  font-weight:540 !important;
}
.lvdc-v311-duration{
  height:28px !important;
  font-weight:650 !important;
  background:#F6F6F6 !important;
}
.lvdc-v311-cap-meta{
  font-weight:520 !important;
}
.lvdc-v311-sync-note{
  color:#9A9A9A !important;
}

/* 14h capacity right-side command center rhythm */
.lvdc-capacity-meta{
  font-weight:520 !important;
}
.lvdc-capacity-foot{
  color:#8F8F8F !important;
}

/* Task modal deadline auto-sync hint */
.lvdc-v312-deadline-hint{
  margin-top:7px;
  font-size:11px;
  line-height:16px;
  color:#7F8A2A;
}
.lvdc-v312-deadline-hint strong{
  font-weight:760;
  color:#5E6B15;
}

/* Keep modal controls quiet and consistent */
.lvdc-modal.lvdc-v309-ready .lvdc-v308-control,
.lvdc-modal.lvdc-v309-ready .lvdc-input,
.lvdc-modal.lvdc-v309-ready select{
  font-weight:420 !important;
}
.lvdc-modal.lvdc-v309-ready .lvdc-label{
  font-weight:740 !important;
}
.lvdc-modal.lvdc-v309-ready .lvdc-v308-picker-icon svg,
.lvdc-modal.lvdc-v309-ready .lvdc-v308-picker-icon svg *{
  stroke-width:1.45px !important;
}


/* ==== lovix-tasks-v313-task-ux-refine.css ==== */
/* Lovix v313 · Planner row containment + lightweight done evidence */

/* Plan Day: stop candidate rows from leaking outside their cards */
.lvdc-v311-modal .lvdc-v311-main{
  grid-template-columns:minmax(460px,1fr) minmax(430px,.94fr) !important;
  gap:22px !important;
}
.lvdc-v311-modal .lvdc-v311-panel{
  border-radius:26px !important;
}
.lvdc-v311-modal .lvdc-v311-list,
.lvdc-v311-modal .lvdc-v311-timeline{
  padding:14px 16px 18px !important;
  gap:12px !important;
  overflow-y:auto !important;
  overflow-x:hidden !important;
}
.lvdc-v311-modal .lvdc-v311-task{
  position:relative !important;
  grid-template-columns:24px minmax(0,1fr) 118px !important;
  gap:12px !important;
  align-items:start !important;
  min-height:96px !important;
  padding:14px 14px !important;
  border-radius:24px !important;
  overflow:hidden !important;
  box-sizing:border-box !important;
}
.lvdc-v311-modal .lvdc-v311-task input[type="checkbox"]{
  margin-top:22px !important;
  align-self:start !important;
  flex:0 0 auto !important;
}
.lvdc-v311-modal .lvdc-v311-task > div:nth-of-type(1){
  min-width:0 !important;
  padding-top:4px !important;
}
.lvdc-v311-modal .lvdc-v311-task-title{
  position:relative !important;
  padding-left:0 !important;
  min-width:0 !important;
  max-width:100% !important;
  font-size:13.2px !important;
  line-height:18px !important;
  font-weight:720 !important;
  letter-spacing:-.015em !important;
  display:-webkit-box !important;
  -webkit-line-clamp:2 !important;
  -webkit-box-orient:vertical !important;
  overflow:hidden !important;
}
.lvdc-v311-modal .lvdc-v311-task-title .lvdc-v312-a-dot{
  position:relative !important;
  width:6px !important;
  height:6px !important;
  margin:0 7px 0 0 !important;
  transform:translateY(-2px) !important;
}
.lvdc-v311-modal .lvdc-v311-task-meta{
  margin-top:6px !important;
  font-size:10.8px !important;
  line-height:14px !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  color:#9B9B9B !important;
}
.lvdc-v311-modal .lvdc-v311-task-side{
  width:118px !important;
  min-width:118px !important;
  align-self:stretch !important;
  display:grid !important;
  grid-template-rows:32px 30px !important;
  align-content:center !important;
  justify-items:end !important;
  gap:8px !important;
  overflow:visible !important;
}
.lvdc-v311-modal .lvdc-v311-minutes{
  width:72px !important;
  height:30px !important;
  font-size:11.5px !important;
  font-weight:650 !important;
  background:#fff !important;
}
.lvdc-v311-modal .lvdc-v311-slot-label{
  width:118px !important;
  min-width:0 !important;
  max-width:118px !important;
  height:28px !important;
  padding:0 8px !important;
  box-sizing:border-box !important;
  font-size:10.5px !important;
  font-weight:650 !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
}
.lvdc-v311-modal .lvdc-v311-task.priority-A{
  border-color:#EBDAC1 !important;
  background:linear-gradient(180deg,#FFFFFF 0%,#FFFCF7 100%) !important;
}
.lvdc-v311-modal .lvdc-v311-linecard{
  border-radius:22px !important;
  padding:13px 14px !important;
  overflow:hidden !important;
}
.lvdc-v311-modal .lvdc-v311-line-title{
  font-size:13.2px !important;
  line-height:18px !important;
  display:-webkit-box !important;
  -webkit-line-clamp:2 !important;
  -webkit-box-orient:vertical !important;
  overflow:hidden !important;
}
.lvdc-v311-modal .lvdc-v311-list::-webkit-scrollbar,
.lvdc-v311-modal .lvdc-v311-timeline::-webkit-scrollbar{ width:6px !important; }
.lvdc-v311-modal .lvdc-v311-list::-webkit-scrollbar-thumb,
.lvdc-v311-modal .lvdc-v311-timeline::-webkit-scrollbar-thumb{ background:#CFCFCF !important; border-radius:999px !important; }
.lvdc-v311-modal .lvdc-v311-list::-webkit-scrollbar-track,
.lvdc-v311-modal .lvdc-v311-timeline::-webkit-scrollbar-track{ background:transparent !important; }

/* Detail checklist: reduce from noisy compulsory block to compact evidence chips */
.lvdc-v313-proof .lvdc-panel-title span{
  margin-left:6px;
  color:#9A9A9A;
  font-size:12px;
  font-weight:700;
}
.lvdc-v313-proof .lvdc-check-list{
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:10px !important;
  margin-top:14px !important;
}
.lvdc-v313-proof .lvdc-check-line{
  height:44px !important;
  min-height:44px !important;
  padding:0 14px !important;
  border-radius:18px !important;
  background:#fff !important;
  display:flex !important;
  align-items:center !important;
  gap:10px !important;
  font-size:13px !important;
  line-height:18px !important;
  font-weight:500 !important;
  color:#444 !important;
}
.lvdc-v313-proof .lvdc-check-line input{
  width:15px !important;
  height:15px !important;
  accent-color:#171717 !important;
  flex:0 0 auto !important;
}
.lvdc-v313-proof .lvdc-check-line span{
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
}

/* Card action microcopy: waiting is useful, but should read like a state handoff */
.lvdc-card-actions [data-action="waiting"]{
  min-width:66px !important;
}


/* ==== lovix-v314-hierarchy-task-polish.css ==== */
/* Lovix v314 · hierarchy manager reorder + committed card alignment */

/* =============== Spark Pool taxonomy manager =============== */
.lvsp-v291-shell:has(.lvsp-v291-taxonomy){
  width:min(1320px, calc(100vw - 56px)) !important;
  height:min(86vh, 850px) !important;
  max-height:min(86vh, 850px) !important;
  display:grid !important;
  grid-template-rows:auto minmax(0,1fr) auto !important;
  overflow:hidden !important;
}
.lvsp-v291-shell:has(.lvsp-v291-taxonomy) .lvsp-v291-body{
  min-height:0 !important;
  overflow:hidden !important;
  padding:22px 28px 24px !important;
}
.lvsp-v291-taxonomy{
  height:100% !important;
  min-height:0 !important;
  display:grid !important;
  grid-template-columns:320px minmax(0,1fr) !important;
  gap:22px !important;
  align-items:stretch !important;
}
.lvsp-v291-side{
  min-height:0 !important;
  overflow-y:auto !important;
  overflow-x:hidden !important;
  padding-right:4px !important;
  display:grid !important;
  align-content:start !important;
  gap:16px !important;
}
.lvsp-v291-panel{
  padding:18px !important;
  border-radius:24px !important;
}
.lvsp-v291-panel h3{
  margin-bottom:14px !important;
}
.lvsp-v291-panel .lvsp-input,
.lvsp-v291-panel select.lvsp-input{
  width:100% !important;
  height:42px !important;
  margin:0 0 12px !important;
  box-sizing:border-box !important;
  display:block !important;
}
.lvsp-v291-panel select.lvsp-input{
  appearance:auto !important;
}
.lvsp-v291-main{
  min-height:0 !important;
  overflow-y:auto !important;
  overflow-x:hidden !important;
  padding:0 8px 16px 0 !important;
  display:grid !important;
  gap:12px !important;
  align-content:start !important;
}
.lvsp-v291-main::-webkit-scrollbar,
.lvsp-v291-side::-webkit-scrollbar{ width:7px !important; }
.lvsp-v291-main::-webkit-scrollbar-thumb,
.lvsp-v291-side::-webkit-scrollbar-thumb{ background:#D4D4D4 !important; border-radius:999px !important; }
.lvsp-v291-main::-webkit-scrollbar-track,
.lvsp-v291-side::-webkit-scrollbar-track{ background:transparent !important; }

.lvsp-v291-typecard{
  position:relative !important;
  border-radius:22px !important;
  padding:14px 16px !important;
  cursor:grab !important;
  user-select:none !important;
  transition:transform .16s ease, border-color .16s ease, background .16s ease, box-shadow .16s ease !important;
}
.lvsp-v291-typecard:active{ cursor:grabbing !important; }
.lvsp-v291-typecard[draggable="true"] .lvsp-v291-typehead strong::before{
  content:"⋮⋮";
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:18px;
  margin-right:8px;
  color:#B9B9B9;
  font-size:13px;
  letter-spacing:-3px;
  transform:translateY(-1px);
}
.lvsp-v291-typecard.is-dragging{
  opacity:.62 !important;
  transform:scale(.992) !important;
  box-shadow:0 12px 28px rgba(0,0,0,.06) !important;
}
.lvsp-v291-typecard.is-drop-before{
  box-shadow:inset 0 3px 0 #D5E84E !important;
}
.lvsp-v291-typecard.is-drop-after{
  box-shadow:inset 0 -3px 0 #D5E84E !important;
}
.lvsp-v291-typehead{
  align-items:center !important;
}
.lvsp-v291-typehead strong{
  font-size:17px !important;
  line-height:22px !important;
}
.lvsp-v291-typehead span{
  margin-top:3px !important;
}
.lvsp-v291-theme-list{
  margin-top:10px !important;
}
.lvsp-v291-theme-row{
  min-height:42px !important;
  padding:8px 12px !important;
  border-radius:15px !important;
}
.lvsp-v291-note{
  padding:16px !important;
  border-radius:22px !important;
}

/* =============== Today Tasks committed card alignment =============== */
/* The first expanded committed card uses the same visual rhythm as the lower cards:
   avatar slightly lower, chip/title no collision, and stable left column. */
.lvtt-page .lvdc-group[data-group="committed"] .lvdc-card.is-committed-expanded .lvdc-card-top{
  grid-template-columns:38px minmax(0,1fr) !important;
  gap:14px !important;
  align-items:start !important;
  margin-bottom:18px !important;
}
.lvtt-page .lvdc-group[data-group="committed"] .lvdc-card.is-committed-expanded .lvtt-avatar{
  margin-top:8px !important;
  transform:none !important;
}
.lvtt-page .lvdc-group[data-group="committed"] .lvdc-card.is-committed-expanded .lvdc-core{
  display:grid !important;
  grid-template-areas:
    "chips"
    "title"
    "meta" !important;
  row-gap:5px !important;
  min-width:0 !important;
  padding-top:0 !important;
}
.lvtt-page .lvdc-group[data-group="committed"] .lvdc-card.is-committed-expanded .lvdc-card-headline{
  grid-area:chips !important;
  display:flex !important;
  justify-content:flex-start !important;
  align-items:center !important;
  gap:6px !important;
  margin:0 0 -1px !important;
  padding:0 !important;
  border:0 !important;
  transform:translateY(-5px) !important;
}
.lvtt-page .lvdc-group[data-group="committed"] .lvdc-card.is-committed-expanded .lvdc-next{
  grid-area:title !important;
  padding-right:92px !important;
  font-size:14.2px !important;
  line-height:20px !important;
  font-weight:740 !important;
  -webkit-line-clamp:2 !important;
  overflow:hidden !important;
  letter-spacing:-.018em !important;
}
.lvtt-page .lvdc-group[data-group="committed"] .lvdc-card.is-committed-expanded .lvdc-context{
  grid-area:meta !important;
  margin-top:0 !important;
  font-size:11px !important;
  line-height:15px !important;
  -webkit-line-clamp:1 !important;
}
.lvtt-page .lvdc-group[data-group="committed"] .lvdc-card.is-committed-expanded .lvdc-priority-chip{
  position:absolute !important;
  right:28px !important;
  top:34px !important;
  height:24px !important;
  z-index:2 !important;
}
.lvtt-page .lvdc-group[data-group="committed"] .lvdc-card.is-committed-expanded .lvdc-type-chip{
  transform:translateY(-1px) !important;
}
.lvtt-page .lvdc-group[data-group="committed"] .lvdc-card.is-committed-expanded .lvdc-contract{
  margin-top:0 !important;
  padding-top:14px !important;
}


/* ==== lovix-v315-committed-header-precision.css ==== */
/* Lovix v315 · committed card header precision
   Scope: only Today Tasks / Committed Today expanded card header.
   Fixes:
   - Type chip was lifted too high and looked too wide.
   - Header-to-contract gap became too large after v314.
   - Expanded first card should visually match the rhythm of the following cards.
*/

.lvtt-page .lvdc-group[data-group="committed"] .lvdc-card.is-committed-expanded .lvdc-card-top,
.lvtt-page .lvdc-group[data-group="committed"] .lvdc-card.is-committed-fixed .lvdc-card-top{
  grid-template-columns:38px minmax(0,1fr) !important;
  gap:14px !important;
  align-items:start !important;
  margin-bottom:8px !important;
}

.lvtt-page .lvdc-group[data-group="committed"] .lvdc-card.is-committed-expanded .lvtt-avatar,
.lvtt-page .lvdc-group[data-group="committed"] .lvdc-card.is-committed-fixed .lvtt-avatar{
  margin-top:8px !important;
  transform:none !important;
}

.lvtt-page .lvdc-group[data-group="committed"] .lvdc-card.is-committed-expanded .lvdc-core,
.lvtt-page .lvdc-group[data-group="committed"] .lvdc-card.is-committed-fixed .lvdc-core{
  display:grid !important;
  grid-template-areas:
    "chips"
    "title"
    "meta" !important;
  row-gap:3px !important;
  min-width:0 !important;
  padding-top:0 !important;
}

.lvtt-page .lvdc-group[data-group="committed"] .lvdc-card.is-committed-expanded .lvdc-card-headline,
.lvtt-page .lvdc-group[data-group="committed"] .lvdc-card.is-committed-fixed .lvdc-card-headline{
  grid-area:chips !important;
  display:flex !important;
  justify-content:flex-start !important;
  align-items:center !important;
  gap:6px !important;
  margin:0 0 -3px !important;
  padding:0 !important;
  border:0 !important;
  transform:translateY(-2px) !important;
  min-height:22px !important;
}

.lvtt-page .lvdc-group[data-group="committed"] .lvdc-card.is-committed-expanded .lvdc-type-chip,
.lvtt-page .lvdc-group[data-group="committed"] .lvdc-card.is-committed-fixed .lvdc-type-chip{
  height:20px !important;
  min-height:20px !important;
  padding:0 9px !important;
  max-width:72px !important;
  width:auto !important;
  font-size:10px !important;
  line-height:20px !important;
  font-weight:650 !important;
  transform:translateY(3px) !important;
  white-space:nowrap !important;
  box-sizing:border-box !important;
}

.lvtt-page .lvdc-group[data-group="committed"] .lvdc-card.is-committed-expanded .lvdc-next,
.lvtt-page .lvdc-group[data-group="committed"] .lvdc-card.is-committed-fixed .lvdc-next{
  grid-area:title !important;
  padding-right:92px !important;
  margin:0 !important;
  font-size:14.2px !important;
  line-height:20px !important;
  font-weight:740 !important;
  -webkit-line-clamp:2 !important;
  overflow:hidden !important;
  letter-spacing:-.018em !important;
}

.lvtt-page .lvdc-group[data-group="committed"] .lvdc-card.is-committed-expanded .lvdc-context,
.lvtt-page .lvdc-group[data-group="committed"] .lvdc-card.is-committed-fixed .lvdc-context{
  grid-area:meta !important;
  margin:0 !important;
  padding:0 !important;
  font-size:11px !important;
  line-height:15px !important;
  -webkit-line-clamp:1 !important;
}

.lvtt-page .lvdc-group[data-group="committed"] .lvdc-card.is-committed-expanded .lvdc-contract,
.lvtt-page .lvdc-group[data-group="committed"] .lvdc-card.is-committed-fixed .lvdc-contract{
  margin-top:0 !important;
  padding-top:10px !important;
}

.lvtt-page .lvdc-group[data-group="committed"] .lvdc-card.is-committed-expanded .lvdc-contract::before,
.lvtt-page .lvdc-group[data-group="committed"] .lvdc-card.is-committed-fixed .lvdc-contract::before{
  margin-top:0 !important;
}

.lvtt-page .lvdc-group[data-group="committed"] .lvdc-card.is-committed-expanded .lvdc-priority-chip,
.lvtt-page .lvdc-group[data-group="committed"] .lvdc-card.is-committed-fixed .lvdc-priority-chip{
  right:28px !important;
  top:32px !important;
  height:23px !important;
  z-index:2 !important;
}


/* ==== lovix-v316-committed-micro-adjust.css ==== */
/* Lovix v316 · committed micro adjust
   Scope: only two requested parts in Committed Today expanded/fixed card.
   1) move the type chip up by 2px
   2) move the contract divider line up by 3px
   Everything else remains locked.
*/

.lvtt-page .lvdc-group[data-group="committed"] .lvdc-card.is-committed-expanded .lvdc-type-chip,
.lvtt-page .lvdc-group[data-group="committed"] .lvdc-card.is-committed-fixed .lvdc-type-chip{
  transform:translateY(1px) !important;
}

.lvtt-page .lvdc-group[data-group="committed"] .lvdc-card.is-committed-expanded .lvdc-contract,
.lvtt-page .lvdc-group[data-group="committed"] .lvdc-card.is-committed-fixed .lvdc-contract{
  margin-top:-3px !important;
  padding-top:13px !important;
}


/* ==== lovix-v317-important-tag-micro.css ==== */
/* Lovix v317 · tiny task detail polish
   Scope is intentionally tiny:
   1) Important ON state becomes orange.
   2) Only the two small tag rows inside Committed Today card move down 3px.
   No title / meta / DoD / buttons / priority chip positions are changed.
*/

/* Important toggle: orange active state */
.lvdc-modal.lvdc-v309-ready .lvdc-v308-important.is-on,
.lvdc-modal .lvdc-v308-important.is-on{
  border-color:#E8832F !important;
  background:linear-gradient(180deg,#F39A43 0%,#E87726 100%) !important;
  color:#FFFFFF !important;
  box-shadow:0 12px 28px rgba(232,119,38,.22) !important;
}

.lvdc-modal.lvdc-v309-ready .lvdc-v308-important.is-on span:first-child,
.lvdc-modal .lvdc-v308-important.is-on span:first-child{
  color:#FFFFFF !important;
  font-weight:760 !important;
}

.lvdc-modal.lvdc-v309-ready .lvdc-v308-important.is-on span:last-child,
.lvdc-modal .lvdc-v308-important.is-on span:last-child{
  color:rgba(255,255,255,.78) !important;
  font-weight:780 !important;
}

/* Only the framed status + milestone chip rows move down 3px */
.lvtt-page .lvdc-group[data-group="committed"] .lvdc-card.is-committed-expanded .lvdc-statusline,
.lvtt-page .lvdc-group[data-group="committed"] .lvdc-card.is-committed-fixed .lvdc-statusline,
.lvtt-page .lvdc-group[data-group="committed"] .lvdc-card.is-committed-expanded .lvdc-milestones,
.lvtt-page .lvdc-group[data-group="committed"] .lvdc-card.is-committed-fixed .lvdc-milestones{
  transform:translateY(3px) !important;
}


/* ==== lovix-overrides-v325-spark-stable.css ==== */
/* Lovix Spark Pool v324 · stable taxonomy controller
   Goal: one visual layer, one taxonomy store, fixed menu stacking, no homepage editing controls. */
body:has(.lvsp-v4) .lvsp-quick,
body:has(.lvsp-v4) .lvsp-filters,
body:has(.lvsp-v4) .lvsp-v296-quick,
body:has(.lvsp-v4) .lvsp-v297-quick,
body:has(.lvsp-v4) .lvsp-v320-quick,
body:has(.lvsp-v4) .lvsp-v320-filterbar{
  display:none !important;
}
.lvsp-v324-quick,
.lvsp-v324-filterbar{
  position:relative;
  z-index:120;
  border:1px solid #E7E7E7;
  background:#FFFFFF;
  border-radius:30px;
  box-shadow:0 18px 50px rgba(17,17,17,.035);
}
.lvsp-v324-quick{
  margin:16px 0 12px;
  padding:16px;
  display:grid;
  grid-template-columns:minmax(360px,1fr) 210px 240px auto auto;
  gap:12px;
  align-items:center;
}
.lvsp-v324-filterbar{
  margin-top:12px;
  padding:14px 16px;
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}
.lvsp-v324-input,
.lvsp-v324-select-btn,
.lvsp-v324-chip,
.lvsp-v324-action{
  height:42px;
  border:1px solid #E5E5E5;
  background:#FFFFFF;
  border-radius:999px;
  color:#171717;
  font-size:13px;
  line-height:1;
  outline:none;
  transition:border-color .16s ease, box-shadow .16s ease, background .16s ease;
}
.lvsp-v324-input{width:100%;padding:0 18px;color:#333;font-weight:500;}
.lvsp-v324-input::placeholder{color:#A9ADB4;font-weight:500;}
.lvsp-v324-input:focus,
.lvsp-v324-select.is-open .lvsp-v324-select-btn,
.lvsp-v324-select-btn:focus-visible{
  border-color:#CFDC28 !important;
  box-shadow:0 0 0 3px rgba(207,220,40,.14);
}
.lvsp-v324-select{position:relative;min-width:0;}
.lvsp-v324-select-btn{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:0 18px;
  cursor:pointer;
  text-align:left;
  font-weight:650;
  color:#3F4A2E;
}
.lvsp-v324-select-btn .label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.lvsp-v324-select-btn .arrow{
  width:16px;height:16px;display:inline-flex;align-items:center;justify-content:center;
  font-size:14px;color:#262626;line-height:1;flex:0 0 auto;transform:translateY(-1px);
}
.lvsp-v324-select.is-open .lvsp-v324-select-btn .arrow{transform:translateY(-1px) rotate(180deg);}
.lvsp-v324-action,
.lvsp-v324-chip{
  display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:0 18px;cursor:pointer;font-weight:700;white-space:nowrap;
}
.lvsp-v324-action.primary{background:#111;color:#fff;border-color:#111;min-width:68px;}
.lvsp-v324-action.ghost{background:#fff;color:#666;border-color:#E7E7E7;}
.lvsp-v324-chip{height:36px;padding:0 15px;font-size:12px;color:#555;background:#fff;}
.lvsp-v324-chip.is-active{background:#111;color:#fff;border-color:#111;}
.lvsp-v324-filterbar .lvsp-v324-select{width:172px;}
.lvsp-v324-filterbar .lvsp-v324-select[data-key="type"]{width:156px;}
.lvsp-v324-filterbar .lvsp-v324-select[data-key="status"]{width:168px;}
.lvsp-v324-filterbar .lvsp-v324-select[data-key="value"]{width:146px;}
.lvsp-v324-menu{
  position:fixed;
  z-index:9990;
  min-width:180px;
  max-width:min(390px,calc(100vw - 28px));
  max-height:300px;
  overflow:auto;
  padding:8px;
  border:1px solid #E6E6E6;
  border-radius:18px;
  background:#fff;
  box-shadow:0 22px 60px rgba(17,17,17,.14);
  scrollbar-width:none;
}
.lvsp-v324-menu::-webkit-scrollbar{display:none;}
.lvsp-v324-option{
  width:100%;
  min-height:42px;
  border:0;
  border-radius:13px;
  background:transparent;
  color:#555;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:0 14px;
  cursor:pointer;
  font-size:13px;
  font-weight:650;
  text-align:left;
}
.lvsp-v324-option:hover{background:#F7F7F4;color:#111;}
.lvsp-v324-option.is-active{background:#111;color:#fff;}
.lvsp-v324-option .check{opacity:0;font-size:13px;}
.lvsp-v324-option.is-active .check{opacity:1;}
.lvsp-v324-option.is-muted{color:#A0A0A0;font-weight:600;}
body:has(.lvsp-modal) .lvsp-v324-menu,
body:has(.lvsp-v324-backdrop) .lvsp-v324-menu{display:none!important;}

/* Stable ThemeTree */
.lvsp-v324-tree .lvsp-tree-head{padding-bottom:14px;border-bottom:1px solid #EFEFEF;}
.lvsp-v324-tree .lvsp-tree-body{padding-top:16px;}
.lvsp-v324-tree-group{border-bottom:1px solid #F0F0F0;padding:0 0 14px;margin:0 0 14px;}
.lvsp-v324-tree-group:last-child{border-bottom:0;margin-bottom:0;}
.lvsp-v324-type-row{
  width:100%;display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:10px;
  border:0;background:transparent;border-radius:14px;padding:9px 6px;cursor:pointer;text-align:left;color:#222;
}
.lvsp-v324-type-row:hover{background:#FBFCF6;}
.lvsp-v324-type-row.is-active{background:#F4F7E6;}
.lvsp-v324-type-row strong{font-size:16px;line-height:21px;font-weight:760;letter-spacing:-.02em;}
.lvsp-v324-count{min-width:24px;text-align:right;color:#9B9B9B;font-size:13px;font-weight:700;}
.lvsp-v324-toggle{width:28px;height:28px;border:1px solid #E8E8E8;background:#fff;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;color:#8C8C8C;cursor:pointer;}
.lvsp-v324-toggle::before{content:'⌄';font-size:13px;line-height:1;transform:translateY(-1px);}
.lvsp-v324-tree-group.is-collapsed .lvsp-v324-toggle::before{transform:rotate(-90deg) translateX(1px);}
.lvsp-v324-theme-list{display:flex;flex-direction:column;gap:2px;margin-top:3px;}
.lvsp-v324-tree-group.is-collapsed .lvsp-v324-theme-list{display:none;}
.lvsp-v324-theme-row{
  width:100%;display:grid;grid-template-columns:1fr auto;align-items:center;gap:10px;
  border:0;background:transparent;border-radius:12px;padding:8px 7px 8px 22px;cursor:pointer;text-align:left;color:#5D5D5D;
  font-size:13.5px;font-weight:620;line-height:18px;
}
.lvsp-v324-theme-row:hover{background:#F8F8F5;color:#171717;}
.lvsp-v324-theme-row.is-active{background:#F3F6E7;color:#222;}
.lvsp-v324-theme-row .lvsp-v324-count{font-size:12px;}
.lvsp-v324-tree .lvsp-tree-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:18px;border-top:1px solid #EFEFEF;}
.lvsp-v324-tree .lvsp-tree-foot button{border:1px solid #E5E5E5;border-radius:999px;background:#fff;padding:9px 15px;font-size:12px;font-weight:700;cursor:pointer;}

/* Filtering */
body:has(.lvsp-v4) .lvsp-strip[data-v324-hidden="1"]{display:none!important;}
.lvsp-v324-empty{grid-column:1/-1;border:1px dashed #E3E3E3;border-radius:24px;min-height:150px;display:flex;align-items:center;justify-content:center;color:#999;font-size:13px;background:#fff;}
.lvsp-v324-statusline{color:#9B9B9B;font-weight:600;}

/* Taxonomy modal */
.lvsp-v324-backdrop{position:fixed;inset:0;z-index:10030;background:rgba(17,17,17,.18);backdrop-filter:blur(2px);}
.lvsp-v324-manager{
  position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);z-index:10031;
  width:min(1320px,94vw);height:min(820px,88vh);background:#fff;border:1px solid #E7E3D8;border-radius:30px;
  box-shadow:0 32px 88px rgba(0,0,0,.16);display:flex;flex-direction:column;overflow:hidden;
}
.lvsp-v324-manager header{height:86px;padding:22px 26px 14px;display:flex;align-items:flex-start;justify-content:space-between;gap:20px;border-bottom:1px solid #EFEFEF;}
.lvsp-v324-manager h2{margin:0;font-size:28px;line-height:32px;font-weight:800;letter-spacing:-.04em;}
.lvsp-v324-manager header p{margin:6px 0 0;color:#999;font-size:13px;}
.lvsp-v324-manager .close{width:42px;height:42px;border:1px solid #E8E8E8;background:#fff;border-radius:999px;color:#777;font-size:24px;cursor:pointer;}
.lvsp-v324-manager-body{flex:1;min-height:0;display:grid;grid-template-columns:330px minmax(0,1fr);gap:22px;padding:22px 24px 74px;overflow:hidden;}
.lvsp-v324-manager-left{min-height:0;overflow:auto;padding-right:8px;border-right:1px solid #EFEFEF;scrollbar-width:none;display:flex;flex-direction:column;gap:16px;}
.lvsp-v324-manager-left::-webkit-scrollbar,.lvsp-v324-manager-list::-webkit-scrollbar{display:none;}
.lvsp-v324-box{border:1px solid #E9E4D9;border-radius:24px;background:#fff;padding:17px;}
.lvsp-v324-box h3{margin:0 0 12px;font-size:16px;font-weight:760;}
.lvsp-v324-box input,.lvsp-v324-box select{width:100%;height:42px;border:1px solid #E7E7E7;border-radius:16px;padding:0 14px;font-size:13px;background:#fff;box-sizing:border-box;outline:none;}
.lvsp-v324-box input+input,.lvsp-v324-box select+input,.lvsp-v324-box button{margin-top:10px;}
.lvsp-v324-box button,.lvsp-v324-manager footer button{height:42px;border:1px solid #E5E5E5;border-radius:999px;background:#fff;padding:0 18px;font-weight:760;cursor:pointer;}
.lvsp-v324-box button.primary,.lvsp-v324-manager footer button.primary{background:#111;color:#fff;border-color:#111;width:100%;}
.lvsp-v324-manager-list{min-height:0;overflow:auto;padding:0 10px 0 0;}
.lvsp-v324-type-card{border:1px solid #E9E4D9;border-radius:22px;background:#fff;margin-bottom:12px;padding:14px 16px;}
.lvsp-v324-type-head{display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:12px;padding:0 0 12px;border-bottom:1px solid #EFEFEF;}
.lvsp-v324-drag{width:28px;color:#BABABA;cursor:grab;text-align:center;font-size:16px;line-height:1;}
.lvsp-v324-type-title strong{font-size:17px;font-weight:790;letter-spacing:-.02em;}
.lvsp-v324-type-title span{display:block;margin-top:4px;font-size:12px;color:#999;}
.lvsp-v324-manager-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;min-width:168px;}
.lvsp-v324-manager-actions button{height:34px;border:1px solid #E8E8E8;border-radius:999px;background:#fff;padding:0 14px;font-size:12px;font-weight:700;cursor:pointer;white-space:nowrap;}
.lvsp-v324-manager-actions .delete{color:#8A5550;}
.lvsp-v324-theme-card{display:grid;grid-template-columns:26px minmax(0,1fr) auto;align-items:center;gap:10px;margin-top:9px;padding:10px 12px;border:1px solid #EFE9DD;border-radius:17px;background:#FFFDF9;}
.lvsp-v324-theme-card strong{font-size:14px;font-weight:700;}
.lvsp-v324-theme-card span{display:block;margin-top:2px;font-size:11px;color:#999;}
.lvsp-v324-manager footer{position:absolute;left:0;right:0;bottom:0;height:64px;border-top:1px solid #EFEFEF;background:#fff;display:flex;align-items:center;justify-content:flex-end;padding:0 24px;}
.lvsp-v324-manager-note{font-size:12px;color:#999;line-height:19px;}
.lvsp-v324-inline-edit{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;align-items:center;width:100%;}
.lvsp-v324-inline-edit input{height:34px;border:1px solid #DDE7B8;border-radius:999px;padding:0 12px;font-size:13px;}
.lvsp-v324-inline-edit button{height:34px;border:1px solid #E5E5E5;border-radius:999px;background:#fff;padding:0 12px;font-size:12px;font-weight:700;cursor:pointer;}
@media(max-width:1100px){.lvsp-v324-quick{grid-template-columns:1fr 1fr;}.lvsp-v324-manager-body{grid-template-columns:1fr;}.lvsp-v324-manager-left{border-right:0;border-bottom:1px solid #EFEFEF;max-height:310px;}}

/* ==== Lovix Spark Pool v325 final interaction guard ==== */
.lvsp-v324-menu{
  z-index:2147483647 !important;
  position:fixed !important;
  transform:translateZ(0) !important;
  pointer-events:auto !important;
}
html[data-lvsp-v324-menu-key="quickType"] .lvsp-v324-filterbar,
html[data-lvsp-v324-menu-key="quickTheme"] .lvsp-v324-filterbar{
  visibility:hidden !important;
}
.lvsp-v324-quick{z-index:3000 !important; overflow:visible !important;}
.lvsp-v324-filterbar{z-index:10 !important;}
.lvsp-v324-select.is-open{z-index:3001 !important;}
.lvsp-v324-tree,
.lvsp-v324-tree *{pointer-events:auto;}
.lvsp-v324-theme-row,
.lvsp-v324-type-row{position:relative;z-index:2;}
.lvsp-v324-theme-row span:first-child{pointer-events:none;}
.lvsp-v324-count{font-variant-numeric:tabular-nums;}
.lvsp-v325-owned .lvsp-list-tools .lvsp-v325-result-count{
  min-width:34px;height:34px;border:1px solid #E8E8E8;border-radius:999px;
  display:inline-flex;align-items:center;justify-content:center;color:#9A9A9A;background:#fff;font-size:13px;font-weight:700;
}
.lvsp-v325-owned .lvsp-strip-grid{
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:18px !important;
  align-items:start !important;
}
.lvsp-v325-owned .lvsp-strip{
  min-width:0 !important;
  cursor:pointer;
}
.lvsp-v325-owned .lvsp-strip.is-selected{
  border-color:#DDE8A6 !important;
  background:linear-gradient(180deg,#fff,#FEFFF9) !important;
}
.lvsp-v325-owned .lvsp-strip-detail{
  margin-top:12px !important;
}
.lvsp-v325-owned .lvsp-empty{display:none!important;}
@media(max-width:1280px){.lvsp-v325-owned .lvsp-strip-grid{grid-template-columns:repeat(2,minmax(0,1fr)) !important;}}
@media(max-width:860px){.lvsp-v325-owned .lvsp-strip-grid{grid-template-columns:1fr !important;}}

/* ==== Lovix Spark Pool v328 · Quick Capture modal repair ==== */
.lvsp-v324-capture{
  width:min(1160px,92vw) !important;
  height:min(760px,86vh) !important;
  border-radius:30px !important;
}
.lvsp-v324-capture header{
  height:auto !important;
  min-height:82px !important;
  padding:22px 28px 16px !important;
  align-items:flex-start !important;
}
.lvsp-v324-capture header h2{
  font-size:26px !important;
  line-height:30px !important;
}
.lvsp-v324-capture header p{
  font-size:13px !important;
  line-height:20px !important;
}
.lvsp-v324-capture .lvsp-v324-manager-body{
  display:block !important;
  padding:24px 28px 96px !important;
  overflow-y:auto !important;
  overflow-x:hidden !important;
  scrollbar-width:none !important;
}
.lvsp-v324-capture .lvsp-v324-manager-body::-webkit-scrollbar{display:none !important;}
.lvsp-v324-capture label{
  display:flex !important;
  flex-direction:column !important;
  align-items:stretch !important;
  gap:8px !important;
  min-width:0 !important;
  color:#8B8B8B !important;
  font-size:13px !important;
  line-height:18px !important;
  font-weight:720 !important;
}
.lvsp-v324-capture label > .lvsp-input,
.lvsp-v324-capture label > select,
.lvsp-v324-capture label > input{
  margin:0 !important;
  width:100% !important;
  height:44px !important;
  box-sizing:border-box !important;
  border:1px solid #E5E5E5 !important;
  border-radius:999px !important;
  background:#FFFFFF !important;
  color:#171717 !important;
  font-size:14px !important;
  font-weight:520 !important;
  line-height:1 !important;
  padding:0 18px !important;
  outline:none !important;
}
.lvsp-v324-capture label > select{
  appearance:auto !important;
  cursor:pointer !important;
}
.lvsp-v324-capture label > .lvsp-input::placeholder,
.lvsp-v324-capture label > input::placeholder,
.lvsp-v324-capture textarea::placeholder{color:#A9ADB4 !important;font-weight:500 !important;}
.lvsp-v324-capture label > .lvsp-input:focus,
.lvsp-v324-capture label > select:focus,
.lvsp-v324-capture label > input:focus,
.lvsp-v324-capture textarea:focus{
  border-color:#CFDC28 !important;
  box-shadow:0 0 0 3px rgba(207,220,40,.14) !important;
}
.lvsp-v324-capture textarea{
  box-sizing:border-box !important;
  min-height:210px !important;
  padding:18px 20px !important;
  border:1px solid #E5E5E5 !important;
  border-radius:22px !important;
  background:#FFFFFF !important;
  color:#171717 !important;
  font-size:14px !important;
  line-height:22px !important;
  font-weight:500 !important;
  resize:vertical !important;
  outline:none !important;
}
.lvsp-v324-capture footer{
  height:76px !important;
  padding:0 28px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:flex-end !important;
  gap:12px !important;
  background:rgba(255,255,255,.98) !important;
  border-top:1px solid #EFEFEF !important;
}
.lvsp-v324-capture footer button{
  width:auto !important;
  min-width:88px !important;
  height:44px !important;
  padding:0 22px !important;
  border-radius:999px !important;
  box-sizing:border-box !important;
  white-space:nowrap !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  font-size:13px !important;
  line-height:1 !important;
  font-weight:760 !important;
}
.lvsp-v324-capture footer button.primary{
  width:auto !important;
  min-width:108px !important;
  max-width:140px !important;
  background:#111 !important;
  color:#fff !important;
  border-color:#111 !important;
}
@media(max-width:900px){
  .lvsp-v324-capture{width:94vw !important;height:88vh !important;}
  .lvsp-v324-capture .lvsp-v324-manager-body{padding:20px 18px 94px !important;}
  .lvsp-v324-capture .lvsp-v324-manager-body > div[style*="grid-template-columns"]{grid-template-columns:1fr !important;}
  .lvsp-v324-capture footer{padding:0 18px !important;}
}


/* ==== Lovix Spark Pool v329 · four issue repair ==== */
/* 1) Unified chevron drawing: never render font glyph "v/⌄". */
.lvsp-v324-select-btn .arrow,
.lvsp-v324-toggle{
  font-size:0 !important;
  line-height:0 !important;
  color:transparent !important;
}
.lvsp-v324-select-btn .arrow{
  position:relative !important;
  width:18px !important;
  height:18px !important;
  flex:0 0 18px !important;
  transform:none !important;
}
.lvsp-v324-select-btn .arrow::before,
.lvsp-v324-toggle::before{
  content:"" !important;
  display:block !important;
  width:7px !important;
  height:7px !important;
  border-right:2px solid #4F4F4F !important;
  border-bottom:2px solid #4F4F4F !important;
  transform:rotate(45deg) translate(-1px,-1px) !important;
  transform-origin:center !important;
}
.lvsp-v324-select.is-open .lvsp-v324-select-btn .arrow::before{
  transform:rotate(225deg) translate(-1px,-1px) !important;
}
.lvsp-v324-toggle::before{
  width:6px !important;
  height:6px !important;
  border-width:1.7px !important;
}
.lvsp-v324-tree-group.is-collapsed .lvsp-v324-toggle::before{
  transform:rotate(-45deg) translate(-1px,1px) !important;
}
.lvsp-v324-select-btn{
  min-height:42px !important;
  align-items:center !important;
}
.lvsp-v324-select-btn .label{line-height:18px !important;}

/* 2) Quick bar dropdown must float above filter bar. Hide lower filterbar only while quick menu is open. */
html.lvsp-v324-quick-menu-open .lvsp-v324-filterbar,
body.lvsp-v324-quick-menu-open .lvsp-v324-filterbar{
  opacity:0 !important;
  visibility:hidden !important;
  pointer-events:none !important;
}
.lvsp-v324-menu{
  z-index:2147483647 !important;
  isolation:isolate !important;
}

/* 3) Restore expandable card affordance and expanded controls without changing 3-card layout. */
.lvsp-v325-owned .lvsp-v325-strip{
  cursor:pointer !important;
}
.lvsp-v325-owned .lvsp-v325-strip.is-open{
  min-height:274px !important;
}
.lvsp-v325-owned .lvsp-v325-strip.is-open .lvsp-strip-detail{
  display:grid !important;
  margin-top:13px !important;
  padding-top:13px !important;
  border-top:1px solid #EFEFEF !important;
}
.lvsp-v325-owned .lvsp-v325-strip.is-open .lvsp-actions-cell{
  display:flex !important;
  justify-content:flex-end !important;
  gap:8px !important;
  margin-top:6px !important;
}
.lvsp-v325-owned .lvsp-v325-strip.is-open .lvsp-actions-cell button{
  height:28px !important;
  padding:0 12px !important;
  border:1px solid #E7E7E7 !important;
  border-radius:999px !important;
  background:#fff !important;
  color:#555 !important;
  font-size:10.5px !important;
  font-weight:740 !important;
  cursor:pointer !important;
}
.lvsp-v325-owned .lvsp-v325-strip.is-open .lvsp-actions-cell button:first-child{
  background:#111 !important;
  color:#fff !important;
  border-color:#111 !important;
}

/* 4) Fragment edit modal layout isolated from taxonomy manager. */
.lvsp-v329-editor{
  width:min(1180px,92vw) !important;
  height:min(780px,88vh) !important;
}
.lvsp-v329-editor .lvsp-v324-manager-body{
  display:grid !important;
  grid-template-columns:1fr 1fr !important;
  gap:16px 18px !important;
  padding:24px 28px 96px !important;
  overflow-y:auto !important;
  overflow-x:hidden !important;
}
.lvsp-v329-editor label{
  display:flex !important;
  flex-direction:column !important;
  gap:8px !important;
  min-width:0 !important;
  color:#8B8B8B !important;
  font-size:13px !important;
  font-weight:720 !important;
}
.lvsp-v329-editor label.wide{grid-column:1 / -1 !important;}
.lvsp-v329-editor input,
.lvsp-v329-editor select{
  height:44px !important;
  border:1px solid #E5E5E5 !important;
  border-radius:999px !important;
  padding:0 18px !important;
  background:#fff !important;
  color:#171717 !important;
  font-size:14px !important;
  font-weight:520 !important;
  outline:none !important;
  box-sizing:border-box !important;
}
.lvsp-v329-editor textarea{
  min-height:150px !important;
  border:1px solid #E5E5E5 !important;
  border-radius:22px !important;
  padding:16px 18px !important;
  background:#fff !important;
  color:#171717 !important;
  font-size:14px !important;
  line-height:22px !important;
  font-weight:500 !important;
  outline:none !important;
  resize:vertical !important;
}
.lvsp-v329-editor input:focus,
.lvsp-v329-editor select:focus,
.lvsp-v329-editor textarea:focus{
  border-color:#CFDC28 !important;
  box-shadow:0 0 0 3px rgba(207,220,40,.14) !important;
}
.lvsp-v329-editor footer{
  height:76px !important;
  padding:0 28px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:flex-end !important;
  gap:12px !important;
}
.lvsp-v329-editor footer button{
  width:auto !important;
  min-width:88px !important;
  height:44px !important;
  padding:0 22px !important;
  border-radius:999px !important;
  white-space:nowrap !important;
}
.lvsp-v329-editor footer button.primary{
  min-width:112px !important;
  background:#111 !important;
  color:#fff !important;
  border-color:#111 !important;
}
@media(max-width:900px){.lvsp-v329-editor .lvsp-v324-manager-body{grid-template-columns:1fr !important;}}


/* ==== Lovix Spark Pool v330 · four screenshot issue repair only ==== */
/* 1) Restore card click-to-expand / click-again-to-collapse without touching layout. */
.lvsp-v325-owned .lvsp-v325-strip,
body:has(.lvsp-v4) .lvsp-v325-strip{
  position:relative !important;
  z-index:1 !important;
  pointer-events:auto !important;
  cursor:pointer !important;
  touch-action:manipulation !important;
}
.lvsp-v325-owned .lvsp-v325-strip *,
body:has(.lvsp-v4) .lvsp-v325-strip *{
  pointer-events:auto !important;
}
.lvsp-v325-owned .lvsp-v325-strip button,
.lvsp-v325-owned .lvsp-v325-strip input,
.lvsp-v325-owned .lvsp-v325-strip label{
  cursor:pointer !important;
}
.lvsp-v325-owned .lvsp-v325-strip:focus-visible{
  outline:2px solid rgba(207,220,40,.65) !important;
  outline-offset:4px !important;
}
.lvsp-v325-owned .lvsp-v325-strip.is-open{
  overflow:visible !important;
}
.lvsp-v325-owned .lvsp-v325-strip.is-open .lvsp-strip-detail,
.lvsp-v325-owned .lvsp-v325-strip.is-open .lvsp-actions-cell,
.lvsp-v325-owned .lvsp-v325-strip.is-open .lvsp-actions-cell button{
  pointer-events:auto !important;
}

/* 2) Taxonomy manager: separate the parent dropdown and the new secondary input. */
.lvsp-v324-box:has([data-v324-parent-select]){
  padding:18px 17px 20px !important;
}
.lvsp-v324-box [data-v324-parent-select]{
  display:block !important;
  margin:0 0 14px 0 !important;
}
.lvsp-v324-box [data-v324-new-theme]{
  display:block !important;
  margin-top:0 !important;
}
.lvsp-v324-box:has([data-v324-parent-select]) button[data-v324-add-theme]{
  margin-top:14px !important;
}

/* 3) Keep the repaired arrow shape stable; no text glyph fallback. */
.lvsp-v324-toggle::before{
  content:'' !important;
  display:block !important;
  border-style:solid !important;
  border-color:#777 !important;
  border-left:0 !important;
  border-top:0 !important;
  transform:rotate(45deg) translate(-1px,-1px) !important;
}
.lvsp-v324-tree-group.is-collapsed .lvsp-v324-toggle::before{
  transform:rotate(-45deg) translate(-1px,1px) !important;
}

/* ==== Lovix Spark Pool v331 · targeted screenshot fixes only ==== */
/* Allow the single v324 menu to be used inside Spark modals. The old rule hid it whenever a backdrop existed, making modal dropdowns appear dead. */
body:has(.lvsp-v324-backdrop) .lvsp-v324-menu{
  display:block !important;
  z-index:2147483647 !important;
}

/* Local custom selects used only in Quick Capture and Taxonomy Manager. */
.lvsp-v324-local-select{
  position:relative !important;
  width:100% !important;
  min-width:0 !important;
}
.lvsp-v324-local-select.is-open .lvsp-v324-select-btn{
  border-color:#CFDC28 !important;
  box-shadow:0 0 0 3px rgba(207,220,40,.14) !important;
}
.lvsp-v324-local-select .lvsp-v324-select-btn{
  height:44px !important;
  min-height:44px !important;
  border:1px solid #E5E5E5 !important;
  border-radius:999px !important;
  background:#fff !important;
  padding:0 18px !important;
  font-size:14px !important;
  font-weight:560 !important;
  color:#171717 !important;
}
.lvsp-v324-local-select .lvsp-v324-select-btn .label{
  line-height:18px !important;
  font-weight:560 !important;
}
.lvsp-v324-local-select .lvsp-v324-select-btn .arrow,
.lvsp-v324-select-btn .arrow{
  position:relative !important;
  width:18px !important;
  height:18px !important;
  flex:0 0 18px !important;
  font-size:0 !important;
  line-height:0 !important;
  color:transparent !important;
  transform:none !important;
}
.lvsp-v324-local-select .lvsp-v324-select-btn .arrow::before,
.lvsp-v324-select-btn .arrow::before{
  content:"" !important;
  position:absolute !important;
  left:50% !important;
  top:50% !important;
  width:7px !important;
  height:7px !important;
  border-right:2px solid #404040 !important;
  border-bottom:2px solid #404040 !important;
  transform:translate(-50%,-62%) rotate(45deg) !important;
  transform-origin:center !important;
  display:block !important;
}
.lvsp-v324-local-select.is-open .lvsp-v324-select-btn .arrow::before,
.lvsp-v324-select.is-open .lvsp-v324-select-btn .arrow::before{
  transform:translate(-50%,-38%) rotate(225deg) !important;
}

/* Taxonomy manager: fix the add-secondary block spacing without touching the right list. */
.lvsp-v331-add-theme{
  padding:18px 17px 20px !important;
}
.lvsp-v331-add-theme .lvsp-v324-local-select{
  margin:0 0 16px 0 !important;
}
.lvsp-v331-add-theme [data-v324-new-theme]{
  margin:0 !important;
}
.lvsp-v331-add-theme [data-v324-add-theme]{
  margin-top:16px !important;
}

/* Quick Capture: stable two-column grid, no native select, no fake/dead controls. */
.lvsp-v331-capture-grid{
  display:grid !important;
  grid-template-columns:1fr 1fr !important;
  gap:18px 18px !important;
  margin-top:18px !important;
  align-items:start !important;
}
.lvsp-v331-capture-grid label{
  display:flex !important;
  flex-direction:column !important;
  gap:8px !important;
  min-width:0 !important;
}
.lvsp-v331-capture-grid input.lvsp-input{
  height:44px !important;
}
@media(max-width:900px){
  .lvsp-v331-capture-grid{grid-template-columns:1fr !important;}
}

/* Card expansion: only restore the detail area and controls. Layout/grid is untouched. */
.lvsp-v325-owned .lvsp-v325-strip{
  pointer-events:auto !important;
  cursor:pointer !important;
}
.lvsp-v325-owned .lvsp-v325-strip.is-open{
  min-height:274px !important;
  overflow:visible !important;
}
.lvsp-v325-owned .lvsp-v325-strip.is-open .lvsp-strip-detail{
  display:block !important;
  margin-top:13px !important;
  padding-top:13px !important;
  border-top:1px solid #EFEFEF !important;
}
.lvsp-v325-owned .lvsp-v325-strip.is-open .lvsp-strip-detail p{
  margin:0 0 11px !important;
  color:#777 !important;
  font-size:12.5px !important;
  line-height:20px !important;
  font-weight:500 !important;
}
.lvsp-v325-owned .lvsp-strip-why{
  border:1px solid #EEE7DC !important;
  border-radius:16px !important;
  padding:10px 12px !important;
  margin:0 0 10px !important;
  background:#FFFDF9 !important;
}
.lvsp-v325-owned .lvsp-strip-why span{
  display:block !important;
  margin-bottom:3px !important;
  color:#A0A0A0 !important;
  font-size:10.5px !important;
  font-weight:740 !important;
}
.lvsp-v325-owned .lvsp-strip-why b{
  display:block !important;
  color:#555 !important;
  font-size:12px !important;
  line-height:18px !important;
}
.lvsp-v325-owned .lvsp-v325-strip.is-open .lvsp-strip-chips{
  display:flex !important;
  flex-wrap:wrap !important;
  gap:6px !important;
  margin:0 0 10px !important;
}
.lvsp-v325-owned .lvsp-v325-strip.is-open .lvsp-actions-cell{
  display:flex !important;
  justify-content:flex-end !important;
  gap:8px !important;
  margin-top:4px !important;
}
.lvsp-v325-owned .lvsp-v325-strip.is-open .lvsp-actions-cell button{
  height:30px !important;
  padding:0 13px !important;
  border:1px solid #E7E7E7 !important;
  border-radius:999px !important;
  background:#fff !important;
  color:#555 !important;
  font-size:11px !important;
  font-weight:740 !important;
  cursor:pointer !important;
}
.lvsp-v325-owned .lvsp-v325-strip.is-open .lvsp-actions-cell button:first-child{
  background:#111 !important;
  color:#fff !important;
  border-color:#111 !important;
}


/* ==== lovix-v332-targeted-fixes.css ==== */
/* Lovix v334 targeted fixes: scope-locked to screenshots only. */

/* ---------- Spark Pool: keep repaired controls stable ---------- */
.lvsp-v324-menu{
  z-index:2147483647 !important;
  pointer-events:auto !important;
}
.lvsp-v324-local-select + input[data-v324-new-theme],
.lvsp-v331-add-theme input[data-v324-new-theme]{
  margin-top:18px !important;
}
.lvsp-v331-add-theme .lvsp-v324-local-select{ margin-bottom:18px !important; }
.lvsp-v324-capture .lvsp-v324-menu,
.lvsp-v324-manager .lvsp-v324-menu{ display:block !important; }
.lvsp-v325-owned .lvsp-v325-strip{ cursor:pointer !important; pointer-events:auto !important; }
.lvsp-v325-owned .lvsp-v325-strip.is-open,
.lvsp-v325-owned .lvsp-v325-strip.lvsp-v332-dom-open{ min-height:274px !important; overflow:visible !important; }
.lvsp-v325-owned .lvsp-v325-strip.lvsp-v332-dom-open .lvsp-strip-detail{ display:block !important; }
.lvsp-v325-owned .lvsp-v332-dom-detail{
  margin-top:13px !important;
  padding-top:13px !important;
  border-top:1px solid #EFEFEF !important;
}
.lvsp-v325-owned .lvsp-v332-dom-detail p{
  margin:0 0 11px !important;
  color:#777 !important;
  font-size:12.5px !important;
  line-height:20px !important;
  font-weight:500 !important;
}
.lvsp-v325-owned .lvsp-v332-dom-detail .lvsp-actions-cell{
  display:flex !important;
  justify-content:flex-end !important;
  gap:8px !important;
  margin-top:10px !important;
}
.lvsp-v325-owned .lvsp-v332-dom-detail .lvsp-actions-cell button{
  height:30px !important;
  padding:0 13px !important;
  border:1px solid #E7E7E7 !important;
  border-radius:999px !important;
  background:#fff !important;
  color:#555 !important;
  font-size:11px !important;
  font-weight:740 !important;
}
.lvsp-v325-owned .lvsp-v332-dom-detail .lvsp-actions-cell button:first-child{ background:#111 !important;color:#fff !important;border-color:#111 !important; }

/* ---------- Dashboard: key list mini cards only ---------- */
.lvx-v332-keylists-board .lvx-v332-key-mini,
.lvx-v332-keylists-board [data-lvx-v332-key-mini="1"]{
  border:1px solid #E1E1E1 !important;
  box-shadow:none !important;
}

/* ---------- Today Tasks: overdue card spacing mirrors committed cards; color untouched ---------- */
.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card.is-overdue-expanded .lvdc-card-top,
.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card.is-overdue-fixed .lvdc-card-top{
  grid-template-columns:38px minmax(0,1fr) !important;
  gap:14px !important;
  align-items:start !important;
  margin-bottom:8px !important;
}
.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card.is-overdue-expanded .lvtt-avatar,
.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card.is-overdue-fixed .lvtt-avatar{
  margin-top:8px !important;
  transform:none !important;
}
.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card.is-overdue-expanded .lvdc-core,
.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card.is-overdue-fixed .lvdc-core{
  display:grid !important;
  grid-template-areas:"chips" "title" "meta" !important;
  row-gap:3px !important;
  min-width:0 !important;
  padding-top:0 !important;
}
.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card.is-overdue-expanded .lvdc-card-headline,
.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card.is-overdue-fixed .lvdc-card-headline{
  grid-area:chips !important;
  display:flex !important;
  justify-content:flex-start !important;
  align-items:center !important;
  gap:6px !important;
  margin:0 0 -3px !important;
  padding:0 !important;
  border:0 !important;
  transform:translateY(1px) !important;
  min-height:22px !important;
}
.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card.is-overdue-expanded .lvdc-type-chip,
.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card.is-overdue-fixed .lvdc-type-chip{
  height:20px !important;
  min-height:20px !important;
  padding:0 9px !important;
  max-width:72px !important;
  width:auto !important;
  font-size:10px !important;
  line-height:20px !important;
  font-weight:650 !important;
  white-space:nowrap !important;
}
.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card.is-overdue-expanded .lvdc-next,
.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card.is-overdue-fixed .lvdc-next{
  grid-area:title !important;
  padding-right:92px !important;
  margin:0 !important;
  font-size:14.2px !important;
  line-height:20px !important;
  font-weight:740 !important;
  -webkit-line-clamp:2 !important;
  overflow:hidden !important;
  letter-spacing:-.018em !important;
}
.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card.is-overdue-expanded .lvdc-context,
.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card.is-overdue-fixed .lvdc-context{
  grid-area:meta !important;
  margin:0 !important;
  padding:0 !important;
  font-size:11px !important;
  line-height:15px !important;
  -webkit-line-clamp:1 !important;
}
.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card.is-overdue-expanded .lvdc-contract,
.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card.is-overdue-fixed .lvdc-contract{
  margin-top:-3px !important;
  padding-top:13px !important;
}
.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card.is-overdue-expanded .lvdc-priority-chip,
.lvtt-page .lvdc-group[data-group="overdue"] .lvdc-card.is-overdue-fixed .lvdc-priority-chip{
  right:28px !important;
  top:32px !important;
  height:23px !important;
  z-index:2 !important;
}

/* ---------- Relationship board: two missing action buttons ---------- */
.lvx-v332-rel-actions{
  display:inline-flex !important;
  align-items:center !important;
  gap:10px !important;
  margin-left:10px !important;
}
.lvx-v332-rel-btn{
  height:36px !important;
  padding:0 18px !important;
  border:1px solid #E5E5E5 !important;
  border-radius:999px !important;
  background:#fff !important;
  color:#333 !important;
  font-size:13px !important;
  font-weight:700 !important;
  cursor:pointer !important;
}
.lvx-v332-rel-btn.primary{ background:#111 !important; color:#fff !important; border-color:#111 !important; }

/* ---------- Inventory targeted improvements ---------- */
.lvinv-v332-tax-btn{
  height:34px !important;
  min-height:34px !important;
  border:1px solid #E5E5E5 !important;
  border-radius:999px !important;
  background:#fff !important;
  color:#555 !important;
  padding:0 16px !important;
  font-size:11.5px !important;
  line-height:34px !important;
  font-weight:720 !important;
  cursor:pointer !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  box-sizing:border-box !important;
}
.lvinv-v332-required{
  border:1px solid #E8E8E8 !important;
  background:#fff !important;
  border-radius:24px !important;
  padding:16px !important;
  margin:0 0 14px !important;
}
.lvinv-v332-required h3{
  margin:0 0 14px !important;
  font-size:14px !important;
  line-height:20px !important;
  font-weight:780 !important;
  color:#171717 !important;
}
.lvinv-v332-required .lvinv-form-grid{ gap:13px 14px !important; }
.lvinv-v332-tax-modal{
  position:fixed !important;
  inset:0 !important;
  z-index:11000 !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  background:rgba(17,17,17,.18) !important;
}
.lvinv-v332-tax-box{
  width:min(560px,92vw) !important;
  border:1px solid #E7E7E7 !important;
  border-radius:28px !important;
  background:#fff !important;
  box-shadow:0 26px 80px rgba(0,0,0,.16) !important;
  padding:22px !important;
}
.lvinv-v332-tax-box h3{ margin:0 0 8px !important; font-size:20px !important; }
.lvinv-v332-tax-box p{ margin:0 0 16px !important; color:#888 !important; font-size:12px !important; line-height:20px !important; }
.lvinv-v332-tax-box label{ display:block !important; margin:12px 0 !important; color:#777 !important; font-size:12px !important; font-weight:700 !important; }
.lvinv-v332-tax-box textarea{ width:100% !important; min-height:84px !important; border:1px solid #E5E5E5 !important; border-radius:18px !important; padding:12px 14px !important; box-sizing:border-box !important; }
.lvinv-v332-tax-actions{ display:flex !important; justify-content:flex-end !important; gap:10px !important; margin-top:16px !important; }
.lvinv-v332-tax-actions button{ height:42px !important; border:1px solid #E5E5E5 !important; border-radius:999px !important; background:#fff !important; padding:0 18px !important; font-weight:760 !important; }
.lvinv-v332-tax-actions button.primary{ background:#111 !important;color:#fff !important;border-color:#111 !important; }

/* ---------- v333 screenshot-locked fixes ---------- */
/* Relationship board: only the two requested missing controls. */
.lvx-v333-rel-actions{
  display:inline-flex !important;
  align-items:center !important;
  gap:10px !important;
  margin-left:10px !important;
  vertical-align:middle !important;
}
.lvx-v333-rel-btn{
  height:36px !important;
  padding:0 18px !important;
  border:1px solid #E5E5E5 !important;
  border-radius:999px !important;
  background:#fff !important;
  color:#333 !important;
  font-size:13px !important;
  line-height:36px !important;
  font-weight:700 !important;
  cursor:pointer !important;
  box-shadow:none !important;
}
.lvx-v333-rel-btn.primary{background:#111 !important;color:#fff !important;border-color:#111 !important;}
[data-v333-progress-link="1"]{cursor:pointer !important;}

/* Account/Inventory dropdown safety: compact menus, no leftover blank open panel. */
body:has(.lvinv-page) .lvx-select-popover,
body:has(.dashboard-workspace) .lvx-select-popover{
  max-height:260px !important;
  overflow:auto !important;
  pointer-events:auto !important;
}
body:has(.lvinv-page) .lvx-select-option,
body:has(.dashboard-workspace) .lvx-select-option{
  pointer-events:auto !important;
  min-height:34px !important;
}
body:has(.lvinv-page) .lvinv-filters .lvx-select-shell,
body:has(.lvinv-page) .lvinv-filters .lvx-select-btn{
  pointer-events:auto !important;
  cursor:pointer !important;
}
body:has(.lvinv-page) .lvinv-filters select.lvdc-native-hidden{
  pointer-events:none !important;
}

/* Inventory quick-required block: keep it visually first, compact, and do not touch lower detail sections. */
.lvinv-v332-required{
  order:-1 !important;
  display:block !important;
}
.lvinv-v332-required .lvinv-form-grid{
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
}
@media(max-width:900px){.lvinv-v332-required .lvinv-form-grid{grid-template-columns:1fr !important;}}


/* ---------- v334 strictly targeted fixes ---------- */
/* 1) Relationship board: remove only the requested switch-pool button, keep Edit. */
[data-v333-rel-switch]{display:none !important;}

/* 3) Inventory add/edit SKU: only six required quick fields remain in the top block. */
.lvinv-v332-required .lvinv-form-grid{
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
}
.lvinv-v332-required label{
  margin:0 !important;
}

/* 4) Inventory custom select: ensure option menus receive clicks and stay above the table. */
body:has(.lvinv-page) .lvx-select-popover.is-open{
  z-index:2147483647 !important;
  pointer-events:auto !important;
}
body:has(.lvinv-page) .lvx-select-option{
  cursor:pointer !important;
  pointer-events:auto !important;
}
body:has(.lvinv-page) .lvx-select-check{
  pointer-events:none !important;
}

/* 5) Tasks page: upcoming card checklist chips only appear after opening detail, not in the overview card. */
.lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-card:not(.is-upcoming-expanded):not(.is-expanded):not(.is-open) .lvdc-milestones{
  display:none !important;
}
/* Do not hide .lvdc-card-actions here: the bottom action buttons must stay visible on overview cards. */


/* ---------- v335 strict screenshot fixes only ---------- */
/* SKU editor: only the six quick-fill labels keep mandatory stars, and they are red. */
.lvinv-v332-required label span b{ color:#D74B40 !important; }
.lvinv-editor-drawer .lvinv-section-card label span b,
.lvinv-drawer .lvinv-section-card label span b,
.lvinv-modal-body .lvinv-section-card label span b{ display:none !important; }

/* Inventory filters: management chip is the last pill and aligned with enhanced select pills. */
body:has(.lvinv-page) .lvinv-filters .lvinv-v332-tax-btn{
  order:999 !important;
  align-self:center !important;
  height:34px !important;
  min-height:34px !important;
  margin:0 !important;
}

/* Inventory table copy: keep the data, remove confusing Reorder Point / Suggested wording. */
body:has(.lvinv-page) .lvinv-table-head > div:nth-child(6)::after{ content:'' !important; }

/* Upcoming cards: remove only the small DoD checklist chip row in overview; keep status chips and action buttons. */
.lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-card:not(.is-upcoming-expanded):not(.is-expanded):not(.is-open) .lvdc-milestones{
  display:none !important;
}
.lvtt-page .lvdc-group[data-group="upcoming"] .lvdc-card:not(.is-upcoming-expanded):not(.is-expanded):not(.is-open) .lvdc-card-actions{
  display:flex !important;
}


/* ==== lovix-v336-filter-unify.css ==== */
/* v336 experiment: unify search / filter / pill controls across boards
   Reference style source: suppliers filter area (compact rounded pills, medium weight text, clean grey border) */

:root{
  --lvx-filter-border:#E6E6E6;
  --lvx-filter-border-hover:#DDE9B6;
  --lvx-filter-bg:#FFFFFF;
  --lvx-filter-soft:#FBFCF7;
  --lvx-filter-text:#565656;
  --lvx-filter-text-strong:#2B2B2B;
  --lvx-filter-placeholder:#A2A2A2;
  --lvx-filter-chip-h:40px;
  --lvx-filter-search-h:44px;
  --lvx-filter-chip-radius:20px;
  --lvx-filter-search-radius:22px;
  --lvx-filter-chip-size:12.5px;
  --lvx-filter-search-size:13px;
  --lvx-filter-chip-weight:650;
  --lvx-filter-search-weight:520;
}

/* Shared hover/focus language */
.lvdc-search:focus,
.lvdc-select:focus,
.lvdc-cselect-btn:focus,
.lvsp-searchline input:focus,
.lvsp-filters select:focus,
.lvsp-btn:focus,
.lvinv-input:focus,
.lvinv-filters select:focus,
.lvinv-btn:focus{
  border-color:var(--lvx-filter-border-hover) !important;
  box-shadow:0 0 0 2px rgba(207,220,40,.16) !important;
  outline:none !important;
}

/* =========================
   01. Account Hub + company pool pages
   ========================= */
.lvdc-filter{
  gap:10px !important;
  row-gap:10px !important;
  align-items:center !important;
}

.lvdc-tab,
.lvdc-select,
.lvdc-search,
.lvdc-cselect-btn{
  border:1px solid var(--lvx-filter-border) !important;
  background:var(--lvx-filter-bg) !important;
  color:var(--lvx-filter-text) !important;
  box-shadow:none !important;
}

.lvdc-tab,
.lvdc-select,
.lvdc-cselect-btn{
  height:var(--lvx-filter-chip-h) !important;
  border-radius:var(--lvx-filter-chip-radius) !important;
  padding:0 16px !important;
  font-size:var(--lvx-filter-chip-size) !important;
  font-weight:var(--lvx-filter-chip-weight) !important;
  letter-spacing:0 !important;
}

.lvdc-tab.active{
  background:#171717 !important;
  border-color:#171717 !important;
  color:#FFFFFF !important;
}

.lvdc-search{
  height:var(--lvx-filter-search-h) !important;
  border-radius:var(--lvx-filter-search-radius) !important;
  padding:0 16px !important;
  font-size:var(--lvx-filter-search-size) !important;
  font-weight:var(--lvx-filter-search-weight) !important;
  color:var(--lvx-filter-text-strong) !important;
}

.lvdc-search::placeholder{
  color:var(--lvx-filter-placeholder) !important;
  font-size:var(--lvx-filter-search-size) !important;
  font-weight:500 !important;
}

.lvdc-tab:hover:not(.active),
.lvdc-select:hover,
.lvdc-cselect-btn:hover,
.lvdc-search:hover{
  border-color:var(--lvx-filter-border-hover) !important;
  background:var(--lvx-filter-soft) !important;
  color:#3D4812 !important;
}

.lvdc-cselect-value{
  font-size:var(--lvx-filter-chip-size) !important;
  font-weight:var(--lvx-filter-chip-weight) !important;
  color:inherit !important;
}

.lvdc-cselect-menu{
  border:1px solid var(--lvx-filter-border) !important;
  border-radius:18px !important;
  box-shadow:0 16px 36px rgba(0,0,0,.08) !important;
}

.lvdc-cselect-item{
  font-size:12.5px !important;
  font-weight:600 !important;
  color:#5C5C5C !important;
}

/* Today Tasks page already uses lvdc primitives; normalize without changing board layout */
.lvtt-page .lvdc-filter{
  padding:14px 16px !important;
}
.lvtt-page .lvdc-search{
  min-width:380px !important;
  flex:1 1 380px !important;
}

/* =========================
   02. Spark Pool toolbar
   ========================= */
.lvsp-toolbar{
  padding:16px !important;
  border-radius:30px !important;
}

.lvsp-searchline{
  gap:12px !important;
  margin-bottom:12px !important;
}

.lvsp-searchline input{
  height:var(--lvx-filter-search-h) !important;
  border:1px solid var(--lvx-filter-border) !important;
  border-radius:var(--lvx-filter-search-radius) !important;
  padding:0 16px !important;
  font-size:var(--lvx-filter-search-size) !important;
  font-weight:var(--lvx-filter-search-weight) !important;
  color:var(--lvx-filter-text-strong) !important;
}

.lvsp-searchline input::placeholder{
  color:var(--lvx-filter-placeholder) !important;
  font-weight:500 !important;
}

.lvsp-btn,
.lvsp-tab,
.lvsp-filters select,
.lvsp-chip{
  border:1px solid var(--lvx-filter-border) !important;
  background:#FFFFFF !important;
  color:var(--lvx-filter-text) !important;
  box-shadow:none !important;
}

.lvsp-btn,
.lvsp-tab,
.lvsp-filters select,
.lvsp-chip{
  height:var(--lvx-filter-chip-h) !important;
  border-radius:var(--lvx-filter-chip-radius) !important;
  padding:0 16px !important;
  font-size:var(--lvx-filter-chip-size) !important;
  font-weight:var(--lvx-filter-chip-weight) !important;
}

.lvsp-tab.active,
.lvsp-chip.active,
.lvsp-btn.primary{
  background:#171717 !important;
  border-color:#171717 !important;
  color:#FFFFFF !important;
}

.lvsp-btn:hover,
.lvsp-tab:hover,
.lvsp-filters select:hover,
.lvsp-chip:hover{
  border-color:var(--lvx-filter-border-hover) !important;
  background:var(--lvx-filter-soft) !important;
  color:#3D4812 !important;
}

.lvsp-filters{
  gap:10px !important;
  row-gap:10px !important;
  padding-top:12px !important;
}

/* =========================
   03. Inventory toolbar
   ========================= */
.lvinv-toolbar{
  padding:16px !important;
  border-radius:30px !important;
}

.lvinv-searchline{
  gap:12px !important;
  margin-bottom:12px !important;
}

.lvinv-input{
  height:var(--lvx-filter-search-h) !important;
  border:1px solid var(--lvx-filter-border) !important;
  border-radius:var(--lvx-filter-search-radius) !important;
  padding:0 16px !important;
  font-size:var(--lvx-filter-search-size) !important;
  font-weight:var(--lvx-filter-search-weight) !important;
  color:var(--lvx-filter-text-strong) !important;
}

.lvinv-input::placeholder{
  color:var(--lvx-filter-placeholder) !important;
  font-weight:500 !important;
}

.lvinv-btn,
.lvinv-tab,
.lvinv-filters select{
  border:1px solid var(--lvx-filter-border) !important;
  background:#FFFFFF !important;
  color:var(--lvx-filter-text) !important;
  box-shadow:none !important;
}

.lvinv-btn,
.lvinv-tab,
.lvinv-filters select{
  height:var(--lvx-filter-chip-h) !important;
  border-radius:var(--lvx-filter-chip-radius) !important;
  padding:0 16px !important;
  font-size:var(--lvx-filter-chip-size) !important;
  font-weight:var(--lvx-filter-chip-weight) !important;
}

.lvinv-tab.active,
.lvinv-btn.primary{
  background:#171717 !important;
  border-color:#171717 !important;
  color:#FFFFFF !important;
}

.lvinv-btn:hover,
.lvinv-tab:hover,
.lvinv-filters select:hover{
  border-color:var(--lvx-filter-border-hover) !important;
  background:var(--lvx-filter-soft) !important;
  color:#3D4812 !important;
}

.lvinv-filters{
  gap:10px !important;
  row-gap:10px !important;
  padding-top:12px !important;
}

/* keep the experimental "管理分类" as last pill visually aligned with others */
.lvinv-filters [data-manage-groups],
.lvinv-filters .lvinv-manage-groups,
.lvinv-filters button[data-manage],
.lvinv-filters button:last-child{
  height:var(--lvx-filter-chip-h) !important;
  border-radius:var(--lvx-filter-chip-radius) !important;
}

/* =========================
   04. Supplier page: light normalization only, use as visual reference
   (do not reshape layout; only normalize any native selects/buttons if present)
   ========================= */
.supplier-page-scope select,
.supplier-page-scope input[type="search"]{
  font-size:12.5px;
}

/* =========================
   05. Small responsive safeguard so unified controls wrap cleanly
   ========================= */
@media (max-width: 1100px){
  .lvdc-search,
  .lvtt-page .lvdc-search,
  .lvsp-searchline input,
  .lvinv-input{
    min-width:100% !important;
    flex:1 1 100% !important;
  }
}


/* ==== lovix-v337-refined-filter-system.css ==== */
/* v337 · Refined unified filter system
   Scope: only top search/filter/chip control zones. No data logic, no cards, no earth hero. */
:root{
  --lvx-ref-line:#E6E6E6;
  --lvx-ref-line-soft:#ECECEC;
  --lvx-ref-hover:#DDE9B6;
  --lvx-ref-bg:#FFFFFF;
  --lvx-ref-bg-hover:#FBFCF7;
  --lvx-ref-text:#4F4F4F;
  --lvx-ref-strong:#242424;
  --lvx-ref-muted:#9EA3AA;
  --lvx-ref-h:38px;
  --lvx-ref-search-h:44px;
  --lvx-ref-radius:19px;
  --lvx-ref-search-radius:22px;
  --lvx-ref-font:12.5px;
  --lvx-ref-search-font:13px;
  --lvx-ref-weight:640;
}

/* shared top-control rhythm */
.lvdc-filter,
.lvsp-tabs,
.lvsp-filters,
.lvinv-tabs,
.lvinv-filters,
.lvsp-v320-filterbar{
  gap:10px !important;
  row-gap:10px !important;
  align-items:center !important;
}

/* =============================
   Spark Pool: real active v320 controls
   ============================= */
body:has(.lvsp-v4) .lvsp-v320-quick{
  padding:14px 16px !important;
  border-radius:30px !important;
  margin-bottom:14px !important;
  grid-template-columns:minmax(360px,1fr) 176px 188px auto auto !important;
  gap:10px !important;
  box-shadow:0 12px 30px rgba(0,0,0,.026) !important;
}

body:has(.lvsp-v4) .lvsp-v320-input,
body:has(.lvsp-v4) .lvsp-v320-select-btn{
  height:42px !important;
  min-height:42px !important;
  border-radius:21px !important;
  border-color:var(--lvx-ref-line) !important;
  font-size:12.5px !important;
  font-weight:560 !important;
  color:var(--lvx-ref-strong) !important;
  letter-spacing:0 !important;
}
body:has(.lvsp-v4) .lvsp-v320-input{
  padding:0 16px !important;
  line-height:42px !important;
}
body:has(.lvsp-v4) .lvsp-v320-input::placeholder{
  color:var(--lvx-ref-muted) !important;
  font-weight:500 !important;
}
body:has(.lvsp-v4) .lvsp-v320-select-btn{
  padding:0 36px 0 15px !important;
}
body:has(.lvsp-v4) .lvsp-v320-select-btn::after,
body:has(.lvsp-v4) .lvsp-v320-combo::after{
  right:15px !important;
  width:7px !important;
  height:7px !important;
  border-right-width:1.6px !important;
  border-bottom-width:1.6px !important;
}

body:has(.lvsp-v4) .lvsp-v320-action{
  height:42px !important;
  min-height:42px !important;
  border-radius:21px !important;
  padding:0 18px !important;
  font-size:12.5px !important;
  font-weight:690 !important;
  letter-spacing:0 !important;
}

/* make Spark's second-row filter controls match the fourth screenshot, not wide oversized blocks */
body:has(.lvsp-v4) .lvsp-v320-filterbar{
  padding-top:12px !important;
  margin-top:12px !important;
  border-top:1px solid #F1F1F1 !important;
}
body:has(.lvsp-v4) .lvsp-v320-filterbar .lvsp-v320-select.compact .lvsp-v320-select-btn,
body:has(.lvsp-v4) .lvsp-v320-filterbar .lvsp-v320-chip{
  height:38px !important;
  min-height:38px !important;
  border-radius:19px !important;
  font-size:12.3px !important;
  font-weight:650 !important;
  letter-spacing:0 !important;
}
body:has(.lvsp-v4) .lvsp-v320-filterbar .lvsp-v320-select.compact .lvsp-v320-select-btn{
  padding:0 34px 0 15px !important;
}
body:has(.lvsp-v4) .lvsp-v320-filterbar .lvsp-v320-chip{
  padding:0 16px !important;
  line-height:38px !important;
}
body:has(.lvsp-v4) .lvsp-v320-select.compact[data-key="type"]{ width:142px !important; }
body:has(.lvsp-v4) .lvsp-v320-select.compact[data-key="theme"]{ width:166px !important; }
body:has(.lvsp-v4) .lvsp-v320-select.compact[data-key="status"]{ width:156px !important; }
body:has(.lvsp-v4) .lvsp-v320-select.compact[data-key="value"]{ width:146px !important; }

body:has(.lvsp-v4) .lvsp-v320-menu{
  top:calc(100% + 7px) !important;
  width:max(100%, 188px) !important;
  max-width:min(300px, calc(100vw - 32px)) !important;
  max-height:274px !important;
  padding:7px !important;
  border-radius:18px !important;
  box-shadow:0 18px 42px rgba(0,0,0,.095) !important;
}
body:has(.lvsp-v4) .lvsp-v320-filterbar .lvsp-v320-menu{
  width:max(100%, 176px) !important;
  max-width:260px !important;
}
body:has(.lvsp-v4) .lvsp-v320-option{
  min-height:34px !important;
  border-radius:12px !important;
  padding:7px 10px !important;
  font-size:12.5px !important;
  line-height:16px !important;
  font-weight:600 !important;
}

/* Spark native/base toolbar fallback, in case old controls appear */
.lvsp-toolbar{
  padding:15px 16px !important;
  border-radius:30px !important;
}
.lvsp-searchline input{
  height:44px !important;
  border-radius:22px !important;
  font-size:13px !important;
  font-weight:500 !important;
}
.lvsp-btn,
.lvsp-tab,
.lvsp-filters select,
.lvsp-chip{
  height:38px !important;
  border-radius:19px !important;
  font-size:12.3px !important;
  font-weight:650 !important;
  padding:0 16px !important;
}

/* =============================
   Inventory / account / task controls: refined unified size
   ============================= */
.lvdc-tab,
.lvdc-select,
.lvdc-cselect-btn,
.lvinv-btn,
.lvinv-tab,
.lvinv-filters select{
  height:var(--lvx-ref-h) !important;
  border-radius:var(--lvx-ref-radius) !important;
  border:1px solid var(--lvx-ref-line) !important;
  background:#fff !important;
  color:var(--lvx-ref-text) !important;
  font-size:var(--lvx-ref-font) !important;
  font-weight:var(--lvx-ref-weight) !important;
  letter-spacing:0 !important;
  padding:0 16px !important;
  box-shadow:none !important;
}
.lvdc-search,
.lvinv-input{
  height:var(--lvx-ref-search-h) !important;
  border-radius:var(--lvx-ref-search-radius) !important;
  border:1px solid var(--lvx-ref-line) !important;
  background:#fff !important;
  color:var(--lvx-ref-strong) !important;
  font-size:var(--lvx-ref-search-font) !important;
  font-weight:520 !important;
  padding:0 16px !important;
  box-shadow:none !important;
}
.lvdc-search::placeholder,
.lvinv-input::placeholder{
  color:var(--lvx-ref-muted) !important;
  font-weight:500 !important;
}
.lvdc-tab.active,
.lvinv-tab.active{
  background:#171717 !important;
  border-color:#171717 !important;
  color:#fff !important;
}
.lvdc-tab:hover:not(.active),
.lvdc-select:hover,
.lvdc-cselect-btn:hover,
.lvdc-search:hover,
.lvinv-btn:hover,
.lvinv-tab:hover,
.lvinv-filters select:hover,
.lvinv-input:hover{
  border-color:var(--lvx-ref-hover) !important;
  background:var(--lvx-ref-bg-hover) !important;
  color:#3D4812 !important;
}
.lvdc-cselect-value{
  font-size:var(--lvx-ref-font) !important;
  font-weight:var(--lvx-ref-weight) !important;
}

/* Inventory filter row: keep 管理分类 aligned as the last pill */
.lvinv-filters{
  padding-top:12px !important;
  gap:10px !important;
}
.lvinv-filters select{ min-width:142px !important; }
.lvinv-filters button,
.lvinv-filters .lvinv-btn{
  height:var(--lvx-ref-h) !important;
  border-radius:var(--lvx-ref-radius) !important;
  font-size:var(--lvx-ref-font) !important;
  font-weight:var(--lvx-ref-weight) !important;
}

/* Supplier page is the reference: only nudge typography where native controls appear */
.supplier-page-scope input,
.supplier-page-scope select,
.supplier-page-scope button{
  letter-spacing:0;
}

@media (max-width:1200px){
  body:has(.lvsp-v4) .lvsp-v320-quick{
    grid-template-columns:minmax(280px,1fr) 158px 176px auto auto !important;
  }
}
@media (max-width:920px){
  body:has(.lvsp-v4) .lvsp-v320-quick{
    grid-template-columns:1fr !important;
  }
  body:has(.lvsp-v4) .lvsp-v320-select.compact,
  body:has(.lvsp-v4) .lvsp-v320-filterbar .lvsp-v320-select.compact{
    width:100% !important;
  }
}


/* ==== lovix-v338-spark-toolbar-today-spec.css ==== */
/* v339 · Spark Pool toolbar normal text weight only
   Based on v338. Only reduces internal text weight in Spark Pool toolbar controls.

   v338 · Spark Pool toolbar only
   Goal: make Spark Pool search/tabs/filter controls visually match Today Tasks.
   Scope lock: .lvsp-v4 .lvsp-toolbar only. No cards, no data, no other pages. */

body:has(.lvsp-v4) .lvsp-toolbar{
  padding:14px 16px !important;
  border-radius:28px !important;
  border:1px solid #E6E6E6 !important;
  background:#FFFFFF !important;
  box-shadow:0 12px 30px rgba(0,0,0,.024) !important;
}

body:has(.lvsp-v4) .lvsp-toolbar .lvsp-searchline{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) auto auto !important;
  gap:8px !important;
  margin-bottom:10px !important;
}

body:has(.lvsp-v4) .lvsp-toolbar .lvsp-searchline input{
  height:44px !important;
  min-height:44px !important;
  border-radius:22px !important;
  border:1px solid #E6E6E6 !important;
  padding:0 16px !important;
  font-size:13px !important;
  font-weight:400 !important;
  line-height:44px !important;
  color:#242424 !important;
  box-shadow:none !important;
}
body:has(.lvsp-v4) .lvsp-toolbar .lvsp-searchline input::placeholder{
  color:#9EA3AA !important;
  font-weight:400 !important;
}

body:has(.lvsp-v4) .lvsp-toolbar .lvsp-tabs{
  gap:8px !important;
  margin-bottom:10px !important;
}

body:has(.lvsp-v4) .lvsp-toolbar .lvsp-tab,
body:has(.lvsp-v4) .lvsp-toolbar .lvsp-btn{
  height:38px !important;
  min-height:38px !important;
  border-radius:19px !important;
  border:1px solid #E6E6E6 !important;
  padding:0 15px !important;
  font-size:12.5px !important;
  font-weight:500 !important;
  letter-spacing:0 !important;
  color:#555555 !important;
  background:#FFFFFF !important;
  box-shadow:none !important;
}
body:has(.lvsp-v4) .lvsp-toolbar .lvsp-tab.active,
body:has(.lvsp-v4) .lvsp-toolbar .lvsp-btn.primary{
  background:#171717 !important;
  border-color:#171717 !important;
  color:#FFFFFF !important;
}
body:has(.lvsp-v4) .lvsp-toolbar .lvsp-tab:hover:not(.active),
body:has(.lvsp-v4) .lvsp-toolbar .lvsp-btn:hover:not(.primary){
  border-color:#DDE9B6 !important;
  background:#FBFCF7 !important;
  color:#3D4812 !important;
}

/* The real active Spark filter row is v324, not v320.
   Make it a divider row like Today Tasks, not a second oversized rounded container. */
body:has(.lvsp-v4) .lvsp-toolbar .lvsp-v324-filterbar{
  margin:10px 0 0 !important;
  padding:12px 0 0 !important;
  border:0 !important;
  border-top:1px solid #EEEEEE !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  gap:8px !important;
  row-gap:8px !important;
  display:flex !important;
  align-items:center !important;
  flex-wrap:wrap !important;
}

body:has(.lvsp-v4) .lvsp-toolbar .lvsp-v324-filterbar .lvsp-v324-select-btn,
body:has(.lvsp-v4) .lvsp-toolbar .lvsp-v324-filterbar .lvsp-v324-chip{
  height:38px !important;
  min-height:38px !important;
  border-radius:19px !important;
  border:1px solid #E6E6E6 !important;
  background:#FFFFFF !important;
  color:#4F4F4F !important;
  font-size:12.5px !important;
  font-weight:500 !important;
  letter-spacing:0 !important;
  box-shadow:none !important;
}

body:has(.lvsp-v4) .lvsp-toolbar .lvsp-v324-filterbar .lvsp-v324-select-btn{
  padding:0 13px 0 15px !important;
  gap:8px !important;
}
body:has(.lvsp-v4) .lvsp-toolbar .lvsp-v324-filterbar .lvsp-v324-select-btn .label{
  font-size:12.5px !important;
  font-weight:500 !important;
  line-height:1 !important;
}
body:has(.lvsp-v4) .lvsp-toolbar .lvsp-v324-filterbar .lvsp-v324-select-btn .arrow{
  width:13px !important;
  height:13px !important;
  font-size:12px !important;
  line-height:1 !important;
  color:#555555 !important;
  transform:translateY(-1px) !important;
}
body:has(.lvsp-v4) .lvsp-toolbar .lvsp-v324-filterbar .lvsp-v324-select.is-open .lvsp-v324-select-btn .arrow{
  transform:translateY(-1px) rotate(180deg) !important;
}

body:has(.lvsp-v4) .lvsp-toolbar .lvsp-v324-filterbar .lvsp-v324-select-btn:hover,
body:has(.lvsp-v4) .lvsp-toolbar .lvsp-v324-filterbar .lvsp-v324-select.is-open .lvsp-v324-select-btn,
body:has(.lvsp-v4) .lvsp-toolbar .lvsp-v324-filterbar .lvsp-v324-chip:hover{
  border-color:#DDE9B6 !important;
  background:#FBFCF7 !important;
  color:#3D4812 !important;
  box-shadow:0 0 0 2px rgba(207,220,40,.12) !important;
}
body:has(.lvsp-v4) .lvsp-toolbar .lvsp-v324-filterbar .lvsp-v324-chip.is-active{
  background:#171717 !important;
  border-color:#171717 !important;
  color:#FFFFFF !important;
  box-shadow:none !important;
}

/* Compact widths, using the same visual rhythm as Today Tasks rather than Spark's old wide pills. */
body:has(.lvsp-v4) .lvsp-toolbar .lvsp-v324-filterbar .lvsp-v324-select{
  flex:0 0 auto !important;
}
body:has(.lvsp-v4) .lvsp-toolbar .lvsp-v324-filterbar .lvsp-v324-select[data-key="type"]{ width:142px !important; }
body:has(.lvsp-v4) .lvsp-toolbar .lvsp-v324-filterbar .lvsp-v324-select[data-key="theme"]{ width:154px !important; }
body:has(.lvsp-v4) .lvsp-toolbar .lvsp-v324-filterbar .lvsp-v324-select[data-key="status"]{ width:150px !important; }
body:has(.lvsp-v4) .lvsp-toolbar .lvsp-v324-filterbar .lvsp-v324-select[data-key="value"]{ width:138px !important; }
body:has(.lvsp-v4) .lvsp-toolbar .lvsp-v324-filterbar .lvsp-v324-chip{
  padding:0 15px !important;
  min-width:68px !important;
  justify-content:center !important;
}

body:has(.lvsp-v4) .lvsp-v324-menu{
  border-radius:18px !important;
  border:1px solid #E6E6E6 !important;
  padding:7px !important;
  box-shadow:0 18px 42px rgba(0,0,0,.095) !important;
}
body:has(.lvsp-v4) .lvsp-v324-option{
  min-height:36px !important;
  border-radius:12px !important;
  padding:0 12px !important;
  font-size:12.5px !important;
  font-weight:500 !important;
  line-height:16px !important;
}

@media (max-width: 980px){
  body:has(.lvsp-v4) .lvsp-toolbar .lvsp-v324-filterbar .lvsp-v324-select{
    width:calc(50% - 4px) !important;
  }
}

/* v340 · Spark Pool top status tabs: reduce vertical inner space by 3px top/bottom.
   Scope lock: only the screenshot row (.lvsp-toolbar .lvsp-tabs .lvsp-tab). */
body:has(.lvsp-v4) .lvsp-toolbar .lvsp-tabs .lvsp-tab{
  height:32px !important;
  min-height:32px !important;
  border-radius:16px !important;
  line-height:32px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
}


/* v341 · Spark Pool four annotated refinements only
   Scope lock: only Spark Pool toolbar + ThemeTree text hierarchy/order handled in v325 JS. */

/* 1) Top search: compact search box aligned to the right, not a full-width bar. */
body:has(.lvsp-v4) .lvsp-toolbar .lvsp-searchline{
  display:flex !important;
  align-items:center !important;
  justify-content:flex-end !important;
  gap:8px !important;
  margin-bottom:8px !important;
}
body:has(.lvsp-v4) .lvsp-toolbar .lvsp-searchline input{
  flex:0 1 520px !important;
  width:520px !important;
  max-width:calc(100% - 150px) !important;
}
body:has(.lvsp-v4) .lvsp-toolbar .lvsp-searchline .lvsp-btn{
  flex:0 0 auto !important;
}

/* 2) Remove the divider between status tabs and the second filter row; tighten equal vertical rhythm. */
body:has(.lvsp-v4) .lvsp-toolbar .lvsp-tabs{
  margin-bottom:6px !important;
}
body:has(.lvsp-v4) .lvsp-toolbar .lvsp-v324-filterbar{
  margin:6px 0 0 !important;
  padding:6px 0 0 !important;
  border-top:0 !important;
}

/* 3) Secondary theme names in ThemeTree: keep them visually secondary, not heavy title text. */
body:has(.lvsp-v4) .lvsp-v324-tree .lvsp-v324-theme-row{
  font-size:13px !important;
  font-weight:500 !important;
  color:#666666 !important;
  letter-spacing:0 !important;
}
body:has(.lvsp-v4) .lvsp-v324-tree .lvsp-v324-theme-row span:first-child{
  font-weight:500 !important;
}
body:has(.lvsp-v4) .lvsp-v324-tree .lvsp-v324-theme-row.is-active span:first-child,
body:has(.lvsp-v4) .lvsp-v324-tree .lvsp-v324-theme-row:hover span:first-child{
  font-weight:540 !important;
  color:#333333 !important;
}

/* ---------- v342 targeted screenshot fixes ---------- */
/* Spark Pool: dock the search cluster to the lower-right of the filter row without creating blank space. */
body:has(.lvsp-v4) .lvsp-toolbar.lvsp-v342-toolbar-search-docked .lvsp-v324-filterbar,
body:has(.lvsp-v4) .lvsp-toolbar.lvsp-v342-toolbar-search-docked .lvsp-v320-filterbar{
  align-items:center !important;
  flex-wrap:wrap !important;
}
body:has(.lvsp-v4) .lvsp-toolbar.lvsp-v342-toolbar-search-docked .lvsp-v342-searchline{
  margin:0 0 0 auto !important;
  display:flex !important;
  align-items:center !important;
  gap:10px !important;
  grid-template-columns:none !important;
  flex:0 0 auto !important;
  width:auto !important;
}
body:has(.lvsp-v4) .lvsp-toolbar.lvsp-v342-toolbar-search-docked .lvsp-v342-searchline input{
  width:320px !important;
  min-width:320px !important;
  height:40px !important;
  padding:0 16px !important;
  font-size:12.5px !important;
  margin:0 !important;
}
body:has(.lvsp-v4) .lvsp-toolbar.lvsp-v342-toolbar-search-docked .lvsp-v342-searchline .lvsp-btn{
  height:40px !important;
  min-height:40px !important;
  padding:0 16px !important;
  font-size:12.5px !important;
  font-weight:680 !important;
}
body:has(.lvsp-v4) .lvsp-toolbar.lvsp-v342-toolbar-search-docked .lvsp-searchline + *{
  margin-top:0 !important;
}
@media (max-width: 1500px){
  body:has(.lvsp-v4) .lvsp-toolbar.lvsp-v342-toolbar-search-docked .lvsp-v342-searchline{
    width:100% !important;
    margin-left:0 !important;
    justify-content:flex-end !important;
  }
  body:has(.lvsp-v4) .lvsp-toolbar.lvsp-v342-toolbar-search-docked .lvsp-v342-searchline input{
    width:min(100%, 320px) !important;
    min-width:220px !important;
  }
}

/* Inventory: make the top tabs / filters lighter in default state and align dropdown visuals with Today Tasks. */
body:has(.lvinv-page) .lvinv-tabs .lvinv-tab,
body:has(.lvinv-page) .lvinv-searchline .lvinv-btn,
body:has(.lvinv-page) .lvinv-filters .lvx-select-btn,
body:has(.lvinv-page) .lvinv-filters .lvinv-v332-tax-btn{
  font-weight:620 !important;
  color:#4F4F4F !important;
}
body:has(.lvinv-page) .lvinv-filters .lvx-select-btn .lvx-select-value{
  font-weight:620 !important;
  color:#4F4F4F !important;
}
body:has(.lvinv-page) .lvinv-tabs .lvinv-tab.active,
body:has(.lvinv-page) .lvinv-searchline .lvinv-btn.primary{
  color:#fff !important;
}
body:has(.lvinv-page) .lvx-select-popover{
  border-radius:22px !important;
  border:1px solid #E8E8E3 !important;
  padding:8px !important;
  box-shadow:0 16px 42px rgba(0,0,0,.10) !important;
}
body:has(.lvinv-page) .lvx-select-option{
  min-height:44px !important;
  border-radius:16px !important;
  padding:10px 14px !important;
  font-size:12.5px !important;
  font-weight:620 !important;
  color:#5F5F5F !important;
  transition:background-color .14s ease, color .14s ease !important;
}
body:has(.lvinv-page) .lvx-select-option:hover,
body:has(.lvinv-page) .lvx-select-option.is-hover{
  background:#F7F8F1 !important;
  color:#4C5620 !important;
}
body:has(.lvinv-page) .lvx-select-option.is-active{
  background:#111 !important;
  color:#fff !important;
}

/* Inventory table: replace the summary replenishment column with clearer product-status presentation. */
body:has(.lvinv-page) .lvinv-table-head,
body:has(.lvinv-page) .lvinv-row-summary{
  grid-template-columns:34px minmax(0,.92fr) minmax(0,1.48fr) minmax(0,1.05fr) minmax(92px,.62fr) minmax(126px,.9fr) minmax(92px,.62fr) minmax(188px,auto) 48px !important;
}
body:has(.lvinv-page) .lvinv-row-summary .lvinv-main.lvinv-main-status{
  align-items:flex-start !important;
}
body:has(.lvinv-page) .lvinv-row-summary .lvinv-main.lvinv-main-status strong{
  width:100% !important;
  text-align:left !important;
  font-size:12px !important;
  line-height:16px !important;
}
body:has(.lvinv-page) .lvinv-row-summary .lvinv-main.lvinv-main-status em{
  justify-content:flex-start !important;
  flex-wrap:wrap !important;
  gap:4px !important;
  min-height:18px !important;
}
body:has(.lvinv-page) .lvinv-status-tags:empty{display:none !important;}
body:has(.lvinv-page) .lvinv-chip.product{
  border-color:#E6E6E6 !important;
  background:#FAFAFA !important;
  color:#5F5F5F !important;
}


/* ==== lovix-v343-inventory-three-shot.css ==== */
/* Lovix v345 inventory-only micro fixes. Strictly scoped to Inventory toolbar + status cell only. */

/* 1) Inventory toolbar: only reduce text/arrow visual weight in the marked filter area. */
body:has(.lvinv-page) .lvinv-toolbar .lvinv-tabs,
body:has(.lvinv-page) .lvinv-toolbar .lvinv-filters{
  letter-spacing:0 !important;
}
body:has(.lvinv-page) .lvinv-toolbar .lvinv-tab:not(.active),
body:has(.lvinv-page) .lvinv-toolbar .lvinv-searchline .lvinv-btn,
body:has(.lvinv-page) .lvinv-toolbar .lvinv-filters select,
body:has(.lvinv-page) .lvinv-toolbar .lvinv-filters .lvx-select-btn,
body:has(.lvinv-page) .lvinv-toolbar .lvinv-filters .lvx-select-value,
body:has(.lvinv-page) .lvinv-toolbar .lvinv-filters .lvinv-v332-tax-btn{
  font-weight:500 !important;
  color:#4F4F4F !important;
  -webkit-font-smoothing:antialiased !important;
  text-rendering:geometricPrecision !important;
}
body:has(.lvinv-page) .lvinv-toolbar .lvinv-tab.active{
  font-weight:600 !important;
}
body:has(.lvinv-page) .lvinv-toolbar .lvinv-filters .lvx-select-arrow::before{
  width:7px !important;
  height:7px !important;
  border-right-width:1.5px !important;
  border-bottom-width:1.5px !important;
}

/* 2) Inventory table status column: force product status and sales channel to share the same left edge. */
body:has(.lvinv-page) .lvinv-row-summary .lvinv-main.lvinv-main-status{
  display:grid !important;
  justify-items:start !important;
  align-items:center !important;
  align-content:center !important;
  text-align:left !important;
  gap:2px !important;
  min-width:0 !important;
}
body:has(.lvinv-page) .lvinv-row-summary .lvinv-main.lvinv-main-status strong,
body:has(.lvinv-page) .lvinv-row-summary .lvinv-main.lvinv-main-status em.lvinv-status-sub{
  display:block !important;
  width:100% !important;
  min-width:0 !important;
  margin:0 !important;
  padding:0 !important;
  text-align:left !important;
  justify-self:start !important;
  justify-content:flex-start !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
}
body:has(.lvinv-page) .lvinv-row-summary .lvinv-main.lvinv-main-status strong{
  font-size:13px !important;
  line-height:18px !important;
  font-weight:700 !important;
  color:#111 !important;
  font-variant-numeric:normal !important;
}
body:has(.lvinv-page) .lvinv-row-summary .lvinv-main.lvinv-main-status em.lvinv-status-sub{
  margin-top:1px !important;
  color:#A0A0A0 !important;
  font-size:11px !important;
  line-height:15px !important;
  font-weight:500 !important;
}
body:has(.lvinv-page) .lvinv-row-card .lvinv-main.lvinv-main-status em.lvinv-status-sub .lvinv-chip,
body:has(.lvinv-page) .lvinv-row-card .lvinv-main.lvinv-main-status em.lvinv-status-sub .lvinv-status-badges{
  display:none !important;
}

/* v346 strict repair: Inventory filter typography and status-cell alignment only. */
body:has(.lvinv-page) .lvinv-toolbar .lvinv-tab,
body:has(.lvinv-page) .lvinv-toolbar .lvinv-btn,
body:has(.lvinv-page) .lvinv-toolbar .lvinv-filters .lvx-select-btn,
body:has(.lvinv-page) .lvinv-toolbar .lvinv-filters .lvx-select-value,
body:has(.lvinv-page) .lvinv-toolbar .lvinv-filters .lvinv-v332-tax-btn{
  font-weight:500 !important;
  letter-spacing:0 !important;
}
body:has(.lvinv-page) .lvinv-toolbar .lvinv-tab.active,
body:has(.lvinv-page) .lvinv-toolbar .lvinv-btn.primary{
  font-weight:600 !important;
}
body:has(.lvinv-page) .lvinv-toolbar .lvx-select-arrow{
  width:14px !important;
  height:14px !important;
  opacity:.72 !important;
}
body:has(.lvinv-page) .lvinv-toolbar .lvx-select-arrow::before{
  left:4px !important;
  top:3px !important;
  width:6px !important;
  height:6px !important;
  border-right-width:1.4px !important;
  border-bottom-width:1.4px !important;
}
body:has(.lvinv-page) .lvinv-toolbar .lvx-select-shell.is-open .lvx-select-arrow::before{
  top:5px !important;
}

/* v346 strict repair: Inventory dropdown options mimic Today Tasks/Spark interaction feedback. */
body:has(.lvinv-page) .lvx-select-popover.is-open{
  z-index:2147483647 !important;
  border-radius:18px !important;
  padding:7px !important;
}
body:has(.lvinv-page) .lvx-select-option{
  font-weight:500 !important;
  color:#5F5F5F !important;
  border-radius:12px !important;
  min-height:36px !important;
  padding:0 12px !important;
  transition:background-color .12s ease, color .12s ease !important;
}
body:has(.lvinv-page) .lvx-select-option:hover,
body:has(.lvinv-page) .lvx-select-option.is-hover{
  background:#F7F8F1 !important;
  color:#3D4812 !important;
}
body:has(.lvinv-page) .lvx-select-option.is-active{
  background:#171717 !important;
  color:#FFFFFF !important;
}

/* v346 strict repair: State column two-line copy has one exact left edge. */
body:has(.lvinv-page) .lvinv-table-head > div:nth-child(6){
  text-align:left !important;
  justify-self:start !important;
}
body:has(.lvinv-page) .lvinv-row-summary .lvinv-main.metric.lvinv-main-status{
  display:flex !important;
  flex-direction:column !important;
  align-items:flex-start !important;
  justify-content:center !important;
  text-align:left !important;
  justify-self:stretch !important;
  gap:1px !important;
}
body:has(.lvinv-page) .lvinv-row-summary .lvinv-main.metric.lvinv-main-status strong,
body:has(.lvinv-page) .lvinv-row-summary .lvinv-main.metric.lvinv-main-status em{
  display:block !important;
  width:100% !important;
  margin:0 !important;
  padding:0 !important;
  text-align:left !important;
  justify-content:flex-start !important;
}
body:has(.lvinv-page) .lvinv-row-summary .lvinv-main.metric.lvinv-main-status strong{
  font-size:13px !important;
  line-height:18px !important;
  font-weight:700 !important;
  color:#111111 !important;
}
body:has(.lvinv-page) .lvinv-row-summary .lvinv-main.metric.lvinv-main-status em{
  font-size:11px !important;
  line-height:15px !important;
  font-weight:500 !important;
  color:#9A9A9A !important;
}

/* v347 correction: Inventory list secondary line alignment + true hover feedback.
   Scope: inventory table rows and inventory enhanced select options only. */
body:has(.lvinv-page) .lvinv-row-summary > .lvinv-main:nth-child(n+2):nth-child(-n+6){
  display:grid !important;
  grid-template-rows:18px 16px !important;
  row-gap:3px !important;
  align-content:center !important;
  align-items:start !important;
  justify-items:start !important;
  text-align:left !important;
  min-width:0 !important;
}
body:has(.lvinv-page) .lvinv-row-summary > .lvinv-main:nth-child(n+2):nth-child(-n+6) > strong{
  display:block !important;
  width:100% !important;
  min-width:0 !important;
  margin:0 !important;
  padding:0 !important;
  line-height:18px !important;
  text-align:left !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  white-space:nowrap !important;
}
body:has(.lvinv-page) .lvinv-row-summary > .lvinv-main:nth-child(n+2):nth-child(-n+6) > em{
  display:block !important;
  width:100% !important;
  min-width:0 !important;
  height:16px !important;
  min-height:16px !important;
  margin:0 !important;
  padding:0 !important;
  line-height:16px !important;
  font-size:11px !important;
  font-weight:500 !important;
  color:#929292 !important;
  text-align:left !important;
  justify-content:flex-start !important;
  align-items:center !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  white-space:nowrap !important;
}
body:has(.lvinv-page) .lvinv-row-summary > .lvinv-main.lvinv-main-status > em.lvinv-status-sub{
  display:block !important;
  height:16px !important;
  min-height:16px !important;
  line-height:16px !important;
  font-size:11px !important;
  font-weight:500 !important;
  color:#929292 !important;
  text-align:left !important;
}

body:has(.lvinv-page) .lvx-select-popover.is-open .lvx-select-option{
  cursor:pointer !important;
  pointer-events:auto !important;
}
body:has(.lvinv-page) .lvx-select-popover.is-open .lvx-select-option:not(.is-active):hover,
body:has(.lvinv-page) .lvx-select-popover.is-open .lvx-select-option:not(.is-active).is-hover,
body:has(.lvinv-page) .lvx-select-popover.is-open .lvx-select-option:not(.is-active)[data-v347-hover="1"]{
  background:#F7F8F1 !important;
  color:#3D4812 !important;
}
body:has(.lvinv-page) .lvx-select-popover.is-open .lvx-select-option:not(.is-active):hover .lvx-select-label,
body:has(.lvinv-page) .lvx-select-popover.is-open .lvx-select-option:not(.is-active).is-hover .lvx-select-label,
body:has(.lvinv-page) .lvx-select-popover.is-open .lvx-select-option:not(.is-active)[data-v347-hover="1"] .lvx-select-label{
  color:#3D4812 !important;
}

/* v348 targeted screenshot repair only.
   Scope lock: Inventory status column, Inventory dropdown hover, Today Tasks filter chips,
   and Spark Pool docked search width behavior. */

/* 1) Inventory status column: header + two-line row text share the same vertical axis. */
body:has(.lvinv-page) .lvinv-table-head > div:nth-child(6){
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  text-align:center !important;
  justify-self:stretch !important;
  width:100% !important;
}
body:has(.lvinv-page) .lvinv-row-summary > .lvinv-main.metric.lvinv-main-status{
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:center !important;
  justify-self:stretch !important;
  text-align:center !important;
  gap:1px !important;
  width:100% !important;
  min-width:0 !important;
}
body:has(.lvinv-page) .lvinv-row-summary > .lvinv-main.metric.lvinv-main-status > strong,
body:has(.lvinv-page) .lvinv-row-summary > .lvinv-main.metric.lvinv-main-status > em.lvinv-status-sub{
  display:block !important;
  width:100% !important;
  max-width:100% !important;
  margin:0 !important;
  padding:0 !important;
  text-align:center !important;
  justify-self:center !important;
  align-self:center !important;
  justify-content:center !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
}
body:has(.lvinv-page) .lvinv-row-summary > .lvinv-main.metric.lvinv-main-status > strong{
  line-height:18px !important;
}
body:has(.lvinv-page) .lvinv-row-summary > .lvinv-main.metric.lvinv-main-status > em.lvinv-status-sub{
  line-height:16px !important;
}

/* 2) Inventory dropdown: clear pale-green hover when pointer touches option text. */
body:has(.lvinv-page) .lvx-select-popover.is-open .lvx-select-option:not(.is-active):hover,
body:has(.lvinv-page) .lvx-select-popover.is-open .lvx-select-option:not(.is-active):focus-visible,
body:has(.lvinv-page) .lvx-select-popover.is-open .lvx-select-option:not(.is-active).is-hover,
body:has(.lvinv-page) .lvx-select-popover.is-open .lvx-select-option:not(.is-active)[data-v347-hover="1"],
body:has(.lvinv-page) .lvx-select-popover.is-open .lvx-select-option:not(.is-active)[data-v348-hover="1"]{
  background:#F4F7E8 !important;
  border-color:#E4ECB8 !important;
  color:#3D4812 !important;
}
body:has(.lvinv-page) .lvx-select-popover.is-open .lvx-select-option:not(.is-active):hover .lvx-select-label,
body:has(.lvinv-page) .lvx-select-popover.is-open .lvx-select-option:not(.is-active):focus-visible .lvx-select-label,
body:has(.lvinv-page) .lvx-select-popover.is-open .lvx-select-option:not(.is-active).is-hover .lvx-select-label,
body:has(.lvinv-page) .lvx-select-popover.is-open .lvx-select-option:not(.is-active)[data-v347-hover="1"] .lvx-select-label,
body:has(.lvinv-page) .lvx-select-popover.is-open .lvx-select-option:not(.is-active)[data-v348-hover="1"] .lvx-select-label{
  color:#3D4812 !important;
}
body:has(.lvinv-page) .lvx-select-popover.is-open .lvx-select-option:not(.is-active){
  border:1px solid transparent !important;
}
body:has(.lvinv-page) .lvx-select-popover.is-open .lvx-select-option.is-active{
  border:1px solid #171717 !important;
}

/* 3) Today Tasks filter chips: unselected chips stay regular; only black active chip is bold white. */
.lvtt-page .lvdc-filter .lvdc-tab:not(.active),
.lvtt-page .lvdc-filter .lvdc-select,
.lvtt-page .lvdc-filter .lvdc-custom-select__button,
.lvtt-page .lvdc-filter .lvx-select-btn,
.lvtt-page .lvdc-filter .lvx-select-value,
.lvtt-page .lvdc-filter .lvdc-cselect-btn,
.lvtt-page .lvdc-filter .lvdc-cselect-value{
  font-weight:500 !important;
  color:#606060 !important;
  letter-spacing:0 !important;
}
.lvtt-page .lvdc-filter .lvdc-tab:not(.active):hover,
.lvtt-page .lvdc-filter .lvdc-select:hover,
.lvtt-page .lvdc-filter .lvdc-custom-select__button:hover,
.lvtt-page .lvdc-filter .lvx-select-btn:hover,
.lvtt-page .lvdc-filter .lvdc-cselect-btn:hover{
  font-weight:500 !important;
  color:#3D4812 !important;
}
.lvtt-page .lvdc-filter .lvdc-tab.active{
  background:#171717 !important;
  border-color:#171717 !important;
  color:#FFFFFF !important;
  font-weight:720 !important;
}

/* 4) Spark Pool: when ThemeTree/sidebar is visible, search shrinks in-row instead of dropping down. */
body:has(.lvsp-v4) .lvsp-toolbar.lvsp-v342-toolbar-search-docked .lvsp-v324-filterbar{
  display:flex !important;
  align-items:center !important;
  flex-wrap:nowrap !important;
  gap:10px !important;
  overflow:visible !important;
}
body:has(.lvsp-v4) .lvsp-toolbar.lvsp-v342-toolbar-search-docked .lvsp-v324-filterbar > .lvsp-v324-select,
body:has(.lvsp-v4) .lvsp-toolbar.lvsp-v342-toolbar-search-docked .lvsp-v324-filterbar > .lvsp-v324-chip{
  flex:0 0 auto !important;
}
body:has(.lvsp-v4) .lvsp-toolbar.lvsp-v342-toolbar-search-docked .lvsp-v342-searchline{
  flex:1 1 230px !important;
  min-width:230px !important;
  width:auto !important;
  margin:0 0 0 auto !important;
  display:flex !important;
  align-items:center !important;
  justify-content:flex-end !important;
  gap:10px !important;
}
body:has(.lvsp-v4) .lvsp-toolbar.lvsp-v342-toolbar-search-docked .lvsp-v342-searchline input{
  flex:1 1 160px !important;
  min-width:140px !important;
  width:auto !important;
  max-width:320px !important;
}
body:has(.lvsp-v4) .lvsp-toolbar.lvsp-v342-toolbar-search-docked .lvsp-v342-searchline .lvsp-btn{
  flex:0 0 auto !important;
  white-space:nowrap !important;
}
@media (max-width:1500px){
  body:has(.lvsp-v4) .lvsp-toolbar.lvsp-v342-toolbar-search-docked .lvsp-v342-searchline{
    flex:1 1 220px !important;
    min-width:220px !important;
    width:auto !important;
    margin-left:auto !important;
    justify-content:flex-end !important;
  }
  body:has(.lvsp-v4) .lvsp-toolbar.lvsp-v342-toolbar-search-docked .lvsp-v342-searchline input{
    width:auto !important;
    min-width:130px !important;
    max-width:300px !important;
  }
}
@media (max-width:1180px){
  body:has(.lvsp-v4) .lvsp-toolbar.lvsp-v342-toolbar-search-docked .lvsp-v324-filterbar{
    flex-wrap:wrap !important;
  }
}


/* ==== lovix-v352-supplier-root-rebuild.css ==== */
/* Lovix v352 · Supplier Root Rebuild + Inventory Lock
   Scope: Supplier Database legacy React filters + Inventory native filters only.
   Goal: rebuild broken dropdown menus from root, not stack page visual patches. */
:root{
  --lovix-dd-trigger-h:38px;
  --lovix-dd-trigger-radius:19px;
  --lovix-dd-border:#E6E6E6;
  --lovix-dd-border-hover:#DDE9B6;
  --lovix-dd-bg:#FFFFFF;
  --lovix-dd-hover-bg:#FBFCF7;
  --lovix-dd-option-hover-bg:#F7F8F1;
  --lovix-dd-text:#4F4F4F;
  --lovix-dd-text-hover:#3D4812;
  --lovix-dd-active-bg:#171717;
  --lovix-dd-active-text:#FFFFFF;
  --lovix-dd-shadow:0 18px 42px rgba(0,0,0,.095);
  --lovix-dd-menu-radius:18px;
  --lovix-dd-option-radius:12px;
  --lovix-dd-font-size:12.5px;
  --lovix-dd-font-weight:500;
  --lovix-dd-z:7600;
}

/* Hide the broken source menus/select-polish shells after v351 takes ownership. */
html body .lovix-dd-source-menu-hidden,
html body .lovix-dd-source-menu-hidden *{
  visibility:hidden !important;
  pointer-events:none !important;
}
html body .lovix-dd-source-menu-hidden{
  display:none !important;
  width:0 !important;
  min-width:0 !important;
  max-width:0 !important;
  height:0 !important;
  min-height:0 !important;
  max-height:0 !important;
  overflow:hidden !important;
  opacity:0 !important;
}
html body .lvinv-page .lvinv-filters select.lovix-dd-native-select,
html body .lvinv-page .lvinv-filters select.lvdc-native-hidden.lovix-dd-native-select,
html body .lvinv-page .lvinv-filters select.lvx-native-select-hidden.lovix-dd-native-select{
  position:absolute !important;
  width:1px !important;
  height:1px !important;
  min-width:1px !important;
  min-height:1px !important;
  max-width:1px !important;
  max-height:1px !important;
  opacity:0 !important;
  pointer-events:none !important;
  overflow:hidden !important;
  clip:rect(0 0 0 0) !important;
  clip-path:inset(50%) !important;
}
html body .lvinv-page .lvinv-filters .lvx-select-shell.lovix-dd-disabled-shell{
  display:none !important;
  visibility:hidden !important;
  pointer-events:none !important;
}

/* Supplier + Inventory trigger pills, matching Today Tasks language. */
html body .supplier-page-scope .lovix-dd-source-trigger,
html body .lvinv-page .lovix-dd-inventory-btn{
  height:var(--lovix-dd-trigger-h) !important;
  min-height:var(--lovix-dd-trigger-h) !important;
  max-height:var(--lovix-dd-trigger-h) !important;
  border-radius:var(--lovix-dd-trigger-radius) !important;
  border:1px solid var(--lovix-dd-border) !important;
  background:#fff !important;
  color:var(--lovix-dd-text) !important;
  padding:0 13px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:12px !important;
  box-sizing:border-box !important;
  font-size:var(--lovix-dd-font-size) !important;
  font-weight:var(--lovix-dd-font-weight) !important;
  line-height:1 !important;
  white-space:nowrap !important;
  transition:background-color .14s ease,border-color .14s ease,color .14s ease !important;
}
html body .supplier-page-scope .lovix-dd-source-trigger:hover,
html body .supplier-page-scope .lovix-dd-source-trigger.is-v351-open,
html body .lvinv-page .lovix-dd-inventory-control.is-open .lovix-dd-inventory-btn,
html body .lvinv-page .lovix-dd-inventory-btn:hover{
  background:var(--lovix-dd-hover-bg) !important;
  border-color:var(--lovix-dd-border-hover) !important;
  color:var(--lovix-dd-text-hover) !important;
}
html body .supplier-page-scope .lovix-dd-source-trigger > span,
html body .lvinv-page .lovix-dd-inventory-btn span{
  min-width:0 !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  white-space:nowrap !important;
  line-height:1 !important;
}
html body .supplier-page-scope .lovix-dd-source-trigger > span:first-of-type{
  color:#717171 !important;
}
html body .supplier-page-scope .lovix-dd-source-trigger > span:nth-of-type(2),
html body .lvinv-page .lovix-dd-inventory-value{
  color:var(--lovix-dd-text) !important;
  font-weight:var(--lovix-dd-font-weight) !important;
}
html body .supplier-page-scope .lovix-dd-source-trigger:hover > span,
html body .supplier-page-scope .lovix-dd-source-trigger.is-v351-open > span,
html body .lvinv-page .lovix-dd-inventory-control.is-open .lovix-dd-inventory-value,
html body .lvinv-page .lovix-dd-inventory-btn:hover .lovix-dd-inventory-value{
  color:var(--lovix-dd-text-hover) !important;
}
html body .supplier-page-scope .lovix-dd-source-trigger svg,
html body .lvinv-page .lovix-dd-inventory-arrow{
  flex:0 0 auto !important;
  color:currentColor !important;
  transition:transform .14s ease,opacity .14s ease !important;
}
html body .supplier-page-scope .lovix-dd-source-trigger.is-v351-open svg,
html body .lvinv-page .lovix-dd-inventory-control.is-open .lovix-dd-inventory-arrow{
  transform:rotate(180deg) !important;
}
html body .lvinv-page .lovix-dd-inventory-control{
  display:inline-flex !important;
  width:var(--lovix-dd-control-w,178px) !important;
  min-width:var(--lovix-dd-control-w,178px) !important;
  max-width:var(--lovix-dd-control-w,178px) !important;
  vertical-align:top !important;
}
html body .lvinv-page .lovix-dd-inventory-btn{width:100% !important;}

/* The one real menu. It is always viewport-fixed and trigger-width clamped by JS. */
html body .lovix-dd-rebuilt-menu{
  position:fixed !important;
  z-index:var(--lovix-dd-z) !important;
  width:var(--lovix-dd-menu-w) !important;
  min-width:var(--lovix-dd-menu-w) !important;
  max-width:var(--lovix-dd-menu-w) !important;
  max-height:292px !important;
  padding:7px !important;
  border:1px solid var(--lovix-dd-border) !important;
  border-radius:var(--lovix-dd-menu-radius) !important;
  background:var(--lovix-dd-bg) !important;
  box-shadow:var(--lovix-dd-shadow) !important;
  overflow:hidden auto !important;
  overscroll-behavior:contain !important;
  scrollbar-width:none !important;
  box-sizing:border-box !important;
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif !important;
}
html body .lovix-dd-rebuilt-menu::-webkit-scrollbar{display:none !important;}
html body .lovix-dd-rebuilt-option{
  position:relative !important;
  width:100% !important;
  height:36px !important;
  min-height:36px !important;
  max-height:36px !important;
  padding:0 34px 0 12px !important;
  border:0 !important;
  border-radius:var(--lovix-dd-option-radius) !important;
  background:transparent !important;
  color:var(--lovix-dd-text) !important;
  display:flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
  box-sizing:border-box !important;
  cursor:pointer !important;
  text-align:left !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  font-size:var(--lovix-dd-font-size) !important;
  font-weight:var(--lovix-dd-font-weight) !important;
  line-height:36px !important;
  letter-spacing:-.01em !important;
  transition:background-color .12s ease,color .12s ease !important;
}
html body .lovix-dd-rebuilt-option > span{
  flex:1 1 auto !important;
  min-width:0 !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  white-space:nowrap !important;
  line-height:36px !important;
}
html body .lovix-dd-rebuilt-option:hover,
html body .lovix-dd-rebuilt-option.is-hover{
  background:var(--lovix-dd-option-hover-bg) !important;
  color:var(--lovix-dd-text-hover) !important;
}
html body .lovix-dd-rebuilt-option.is-active,
html body .lovix-dd-rebuilt-option[aria-selected="true"]{
  background:var(--lovix-dd-active-bg) !important;
  color:var(--lovix-dd-active-text) !important;
  font-weight:600 !important;
}
html body .lovix-dd-rebuilt-option.is-active:hover,
html body .lovix-dd-rebuilt-option[aria-selected="true"]:hover{
  background:var(--lovix-dd-active-bg) !important;
  color:var(--lovix-dd-active-text) !important;
}
html body .lovix-dd-rebuilt-option.is-active::after,
html body .lovix-dd-rebuilt-option[aria-selected="true"]::after{
  content:"✓" !important;
  position:absolute !important;
  right:12px !important;
  top:50% !important;
  transform:translateY(-50%) !important;
  margin:0 !important;
  line-height:1 !important;
  font-size:13px !important;
  color:currentColor !important;
  pointer-events:none !important;
}

/* Backstop: if an old supplier menu flashes before v351 hides it, force Today-like geometry. */
html body .supplier-page-scope div.relative > div.absolute:not(.lovix-dd-rebuilt-menu){
  width:190px !important;
  min-width:168px !important;
  max-width:220px !important;
  padding:7px !important;
  border-radius:18px !important;
  border:1px solid #E6E6E6 !important;
  background:#fff !important;
  box-shadow:0 18px 42px rgba(0,0,0,.095) !important;
  overflow:hidden auto !important;
}
html body .supplier-page-scope div.relative > div.absolute:not(.lovix-dd-rebuilt-menu) > button{
  height:36px !important;
  min-height:36px !important;
  max-height:36px !important;
  padding:0 34px 0 12px !important;
  border-radius:12px !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  font-size:12.5px !important;
  font-weight:500 !important;
  line-height:36px !important;
}
html body .supplier-page-scope div.relative > div.absolute:not(.lovix-dd-rebuilt-menu) > button:hover{
  background:#F7F8F1 !important;
  color:#3D4812 !important;
}

@media (max-width:760px){
  html body .lovix-dd-rebuilt-menu{max-width:calc(100vw - 24px) !important;}
}


/* v352 Supplier Database native dropdown rebuild: no overlay, no duplicate menu. */
html body .supplier-page-scope .lovix-dd-source-trigger{
  height:38px !important;
  min-height:38px !important;
  max-height:38px !important;
  border-radius:19px !important;
  border:1px solid #E6E6E6 !important;
  background:#fff !important;
  color:#4F4F4F !important;
  padding:0 13px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:12px !important;
  box-sizing:border-box !important;
  font-size:12.5px !important;
  font-weight:500 !important;
  line-height:1 !important;
  white-space:nowrap !important;
}
html body .supplier-page-scope .lovix-dd-source-trigger:hover,
html body .supplier-page-scope .lovix-dd-source-trigger[class*="border-[#DDE9B6]"]{
  background:#FBFCF7 !important;
  border-color:#DDE9B6 !important;
  color:#3D4812 !important;
}
html body .supplier-page-scope .lovix-dd-source-trigger > span{
  min-width:0 !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  white-space:nowrap !important;
}
html body .supplier-page-scope .lovix-dd-source-trigger > span:first-of-type{color:#717171 !important;}
html body .supplier-page-scope .lovix-dd-source-trigger > span:nth-of-type(2){font-weight:500 !important;color:inherit !important;}
html body .supplier-page-scope .lovix-dd-source-trigger svg{
  flex:0 0 auto !important;
  color:currentColor !important;
  transition:transform .14s ease !important;
}

/* Only style the real React menu in Supplier Database; do not create a second overlay menu. */
html body .supplier-page-scope div.relative > div.absolute:not(.lovix-dd-rebuilt-menu){
  left:0 !important;
  right:auto !important;
  top:44px !important;
  width:190px !important;
  min-width:168px !important;
  max-width:220px !important;
  padding:7px !important;
  border-radius:18px !important;
  border:1px solid #E6E6E6 !important;
  background:#FFFFFF !important;
  box-shadow:0 18px 42px rgba(0,0,0,.095) !important;
  overflow:hidden auto !important;
  max-height:292px !important;
  z-index:6200 !important;
  box-sizing:border-box !important;
  scrollbar-width:none !important;
}
html body .supplier-page-scope div.relative > div.absolute:not(.lovix-dd-rebuilt-menu)::-webkit-scrollbar{display:none !important;}
html body .supplier-page-scope div.relative > div.absolute:not(.lovix-dd-rebuilt-menu) > button{
  position:relative !important;
  width:100% !important;
  height:36px !important;
  min-height:36px !important;
  max-height:36px !important;
  padding:0 34px 0 12px !important;
  border:0 !important;
  border-radius:12px !important;
  background:transparent !important;
  color:#4F4F4F !important;
  display:flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
  box-sizing:border-box !important;
  text-align:left !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  font-size:12.5px !important;
  font-weight:500 !important;
  line-height:36px !important;
  cursor:pointer !important;
}
html body .supplier-page-scope div.relative > div.absolute:not(.lovix-dd-rebuilt-menu) > button > span{
  flex:1 1 auto !important;
  min-width:0 !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  white-space:nowrap !important;
  line-height:36px !important;
}
html body .supplier-page-scope div.relative > div.absolute:not(.lovix-dd-rebuilt-menu) > button:hover{
  background:#F7F8F1 !important;
  color:#3D4812 !important;
}
html body .supplier-page-scope div.relative > div.absolute:not(.lovix-dd-rebuilt-menu) > button:has(svg){
  background:#171717 !important;
  color:#FFFFFF !important;
  font-weight:600 !important;
}
html body .supplier-page-scope div.relative > div.absolute:not(.lovix-dd-rebuilt-menu) > button:has(svg):hover{
  background:#171717 !important;
  color:#FFFFFF !important;
}
html body .supplier-page-scope div.relative > div.absolute:not(.lovix-dd-rebuilt-menu) > button > svg{
  position:absolute !important;
  right:12px !important;
  top:50% !important;
  transform:translateY(-50%) !important;
  margin:0 !important;
  line-height:1 !important;
  flex:0 0 auto !important;
  pointer-events:none !important;
}


/* ==== lovix-v355-inventory-table-rebuild.css ==== */
/* Lovix v355 Inventory Detail Table Root Rebuild
   Clean table system: new lvinv2-* classes avoid all previous inventory table patch selectors.
   Header and rows share one exact grid. No single-column margin/transform/absolute nudging. */

.lvinv-page .lvinv-board{
  --lvinv2-table-pad-x:18px;
  --lvinv2-table-gap:16px;
  --lvinv2-table-cols:
    minmax(134px, .82fr)
    minmax(220px, 1.35fr)
    minmax(180px, 1.10fr)
    minmax(92px, .56fr)
    minmax(78px, .46fr)
    minmax(94px, .52fr)
    minmax(226px, 1.05fr);
  overflow:hidden !important;
}

.lvinv-page .lvinv2-table-wrap{
  width:100% !important;
  max-width:100% !important;
  overflow:hidden !important;
  box-sizing:border-box !important;
}

.lvinv-page .lvinv2-table{
  width:100% !important;
  max-width:100% !important;
  display:grid !important;
  gap:10px !important;
  box-sizing:border-box !important;
}

.lvinv-page .lvinv2-grid{
  display:grid !important;
  grid-template-columns:var(--lvinv2-table-cols) !important;
  column-gap:var(--lvinv2-table-gap) !important;
  align-items:center !important;
  width:100% !important;
  max-width:100% !important;
  box-sizing:border-box !important;
  padding-left:var(--lvinv2-table-pad-x) !important;
  padding-right:var(--lvinv2-table-pad-x) !important;
}

.lvinv-page .lvinv2-table-head{
  min-height:36px !important;
  padding-top:0 !important;
  padding-bottom:0 !important;
  border:1px solid #F0F0F0 !important;
  border-radius:999px !important;
  background:#FAFAFA !important;
  color:#9B9B9B !important;
  font-size:10px !important;
  line-height:14px !important;
  font-weight:760 !important;
  letter-spacing:.035em !important;
}

.lvinv-page .lvinv2-table-head > div{
  min-width:0 !important;
  display:flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
  text-align:left !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
}

.lvinv-page .lvinv2-table-head > div:nth-child(7){
  justify-content:center !important;
  text-align:center !important;
}

.lvinv-page .lvinv-row-card{
  width:100% !important;
  max-width:100% !important;
  box-sizing:border-box !important;
  border:1px solid #EFEFEF !important;
  border-radius:20px !important;
  background:#fff !important;
  overflow:hidden !important;
}

.lvinv-page .lvinv-row-card.is-low{
  background:linear-gradient(180deg,#fff 0%,#fff 68%,#FFFDF8 100%) !important;
}
.lvinv-page .lvinv-row-card.is-out{
  background:linear-gradient(180deg,#fff 0%,#fff 68%,#FFF7EF 100%) !important;
}

.lvinv-page .lvinv2-row-summary{
  min-height:82px !important;
  padding-top:10px !important;
  padding-bottom:10px !important;
  cursor:pointer !important;
  background:transparent !important;
  border:0 !important;
  border-radius:0 !important;
}

.lvinv-page .lvinv2-row-summary:hover{
  background:rgba(0,0,0,.012) !important;
}

.lvinv-page .lvinv2-cell{
  min-width:0 !important;
  max-width:100% !important;
  box-sizing:border-box !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:flex-start !important;
  justify-content:center !important;
  gap:2px !important;
  text-align:left !important;
  overflow:hidden !important;
}

.lvinv-page .lvinv2-cell strong,
.lvinv-page .lvinv2-cell em{
  display:block !important;
  width:100% !important;
  min-width:0 !important;
  max-width:100% !important;
  margin:0 !important;
  padding:0 !important;
  text-align:left !important;
  font-style:normal !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  box-sizing:border-box !important;
}

.lvinv-page .lvinv2-cell strong{
  font-size:13px !important;
  line-height:18px !important;
  font-weight:720 !important;
  color:#111 !important;
  font-variant-numeric:tabular-nums !important;
}

.lvinv-page .lvinv2-cell em{
  font-size:11px !important;
  line-height:16px !important;
  font-weight:500 !important;
  color:#929292 !important;
}

.lvinv-page .lvinv2-cell.soft strong{
  color:#606060 !important;
  font-weight:690 !important;
}

.lvinv-page .lvinv2-cell-sku{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) !important;
  align-items:center !important;
}

.lvinv-page .lvinv2-inline-check{
  display:none !important;
  align-items:center !important;
  justify-content:center !important;
}

.lvinv-page .lvinv2-copy{
  min-width:0 !important;
  display:block !important;
}

.lvinv-page .lvinv-board.is-selecting .lvinv2-cell-sku{
  grid-template-columns:20px minmax(0,1fr) !important;
  column-gap:8px !important;
}

.lvinv-page .lvinv-board.is-selecting .lvinv2-inline-check{
  display:inline-flex !important;
}

.lvinv-page .lvinv2-inline-check input{
  width:15px !important;
  height:15px !important;
  accent-color:#CFDC28 !important;
}

.lvinv-page .lvinv2-safety em{
  overflow:visible !important;
}

.lvinv-page .lvinv2-safety .lvinv-chip{
  display:inline-flex !important;
  width:auto !important;
  max-width:100% !important;
  height:22px !important;
  line-height:20px !important;
  align-items:center !important;
  justify-content:center !important;
  padding:0 8px !important;
  border-radius:999px !important;
  white-space:nowrap !important;
  vertical-align:top !important;
}

.lvinv-page .lvinv2-actions{
  min-width:0 !important;
  max-width:100% !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:5px !important;
  flex-wrap:nowrap !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  box-sizing:border-box !important;
}

.lvinv-page .lvinv2-actions .lvinv-mini-btn,
.lvinv-page .lvinv2-actions .lvinv-expand-btn{
  flex:0 0 auto !important;
  height:24px !important;
  min-width:0 !important;
  line-height:22px !important;
  padding:0 7px !important;
  font-size:10px !important;
  border-radius:999px !important;
  white-space:nowrap !important;
}

.lvinv-page .lvinv2-actions .lvinv-expand-btn{
  padding-left:9px !important;
  padding-right:9px !important;
}

.lvinv-page .lvinv-row-details{
  padding-left:18px !important;
  padding-right:18px !important;
}

@media (max-width:1500px){
  .lvinv-page .lvinv-board{
    --lvinv2-table-pad-x:14px;
    --lvinv2-table-gap:12px;
    --lvinv2-table-cols:
      minmax(120px, .80fr)
      minmax(190px, 1.25fr)
      minmax(160px, 1.00fr)
      minmax(82px, .52fr)
      minmax(66px, .42fr)
      minmax(84px, .48fr)
      minmax(206px, .96fr);
  }
  .lvinv-page .lvinv2-actions{
    gap:4px !important;
  }
  .lvinv-page .lvinv2-actions .lvinv-mini-btn,
  .lvinv-page .lvinv2-actions .lvinv-expand-btn{
    padding-left:6px !important;
    padding-right:6px !important;
  }
}

@media (max-width:1220px){
  .lvinv-page .lvinv2-table-wrap{
    overflow-x:auto !important;
    scrollbar-width:none !important;
  }
  .lvinv-page .lvinv2-table-wrap::-webkit-scrollbar{display:none !important;}
  .lvinv-page .lvinv2-table{
    min-width:1120px !important;
  }
}

/* v356: Inventory toolbar divider removal only.
   Keep the v355 table rebuild locked; remove only the horizontal split line between status chips and filter selects. */
html body:has(.lvinv-page) .lvinv-toolbar .lvinv-filters{
  border-top:0 !important;
  padding-top:8px !important;
}
html body:has(.lvinv-page) .lvinv-toolbar .lvinv-tabs{
  margin-bottom:8px !important;
}


/* ==== lovix-v357-supplier-drawer-root.css ==== */
/* Lovix v357 · Supplier Drawer Root Clean
   Scope: Supplier add/edit drawer only. Stops old lv283/lv286 patches from breaking scroll and contact dropdowns. */
html body aside.lv357-supplier-drawer{
  height:100dvh !important;
  max-height:100dvh !important;
  overflow:hidden !important;
  display:flex !important;
  flex-direction:column !important;
  background:#fff !important;
}
html body aside.lv357-supplier-drawer > header,
html body aside.lv357-supplier-drawer > footer{
  flex:0 0 auto !important;
}
html body aside.lv357-supplier-drawer > .lv357-supplier-drawer-body,
html body aside.lv357-supplier-drawer > div.flex-1{
  flex:1 1 auto !important;
  min-height:0 !important;
  overflow-y:auto !important;
  overflow-x:hidden !important;
  overscroll-behavior:contain !important;
  scrollbar-width:none !important;
  -webkit-overflow-scrolling:touch !important;
}
html body aside.lv357-supplier-drawer > .lv357-supplier-drawer-body::-webkit-scrollbar,
html body aside.lv357-supplier-drawer > div.flex-1::-webkit-scrollbar{display:none !important;}

/* Clean Lovix dropdown for contact type and all supplier drawer selects. */
html body aside.lv357-supplier-drawer .lovix-dd-source-trigger{
  height:38px !important;
  min-height:38px !important;
  max-height:38px !important;
  width:100% !important;
  border-radius:19px !important;
  border:1px solid #E6E6E6 !important;
  background:#fff !important;
  color:#4F4F4F !important;
  padding:0 13px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:10px !important;
  box-sizing:border-box !important;
  font-size:12.5px !important;
  font-weight:500 !important;
  line-height:1 !important;
  white-space:nowrap !important;
  outline:none !important;
  box-shadow:none !important;
  transition:background-color .14s ease,border-color .14s ease,color .14s ease !important;
}
html body aside.lv357-supplier-drawer .lovix-dd-source-trigger:hover,
html body aside.lv357-supplier-drawer .lovix-dd-source-trigger:focus-visible,
html body aside.lv357-supplier-drawer .lovix-dd-source-trigger[class*="border-[#DDE9B6]"]{
  background:#FBFCF7 !important;
  border-color:#DDE9B6 !important;
  color:#3D4812 !important;
}
html body aside.lv357-supplier-drawer .lovix-dd-source-trigger > span{
  min-width:0 !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  white-space:nowrap !important;
  line-height:1 !important;
}
html body aside.lv357-supplier-drawer .lovix-dd-source-trigger > span:first-of-type:empty{display:none !important;}
html body aside.lv357-supplier-drawer .lovix-dd-source-trigger > span:nth-of-type(2){font-weight:500 !important;color:inherit !important;}
html body aside.lv357-supplier-drawer .lovix-dd-source-trigger svg{flex:0 0 auto !important;color:currentColor !important;}

html body aside.lv357-supplier-drawer div.relative > div.absolute,
html body aside.lv357-supplier-drawer .lv357-select-menu{
  left:0 !important;
  right:auto !important;
  top:44px !important;
  width:190px !important;
  min-width:168px !important;
  max-width:220px !important;
  max-height:292px !important;
  padding:7px !important;
  border:1px solid #E6E6E6 !important;
  border-radius:18px !important;
  background:#fff !important;
  box-shadow:0 18px 42px rgba(0,0,0,.095) !important;
  overflow:hidden auto !important;
  overscroll-behavior:contain !important;
  scrollbar-width:none !important;
  z-index:7600 !important;
  box-sizing:border-box !important;
}
html body aside.lv357-supplier-drawer div.relative > div.absolute::-webkit-scrollbar,
html body aside.lv357-supplier-drawer .lv357-select-menu::-webkit-scrollbar{display:none !important;}
html body aside.lv357-supplier-drawer div.relative > div.absolute > button,
html body aside.lv357-supplier-drawer .lv357-select-menu > button{
  position:relative !important;
  width:100% !important;
  height:36px !important;
  min-height:36px !important;
  max-height:36px !important;
  padding:0 34px 0 12px !important;
  border:0 !important;
  border-radius:12px !important;
  background:transparent !important;
  color:#4F4F4F !important;
  display:flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
  box-sizing:border-box !important;
  text-align:left !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  font-size:12.5px !important;
  font-weight:500 !important;
  line-height:36px !important;
  cursor:pointer !important;
}
html body aside.lv357-supplier-drawer div.relative > div.absolute > button > span,
html body aside.lv357-supplier-drawer .lv357-select-menu > button > span{
  flex:1 1 auto !important;
  min-width:0 !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  white-space:nowrap !important;
  line-height:36px !important;
}
html body aside.lv357-supplier-drawer div.relative > div.absolute > button:hover,
html body aside.lv357-supplier-drawer .lv357-select-menu > button:hover{
  background:#F7F8F1 !important;
  color:#3D4812 !important;
}
html body aside.lv357-supplier-drawer div.relative > div.absolute > button:has(svg),
html body aside.lv357-supplier-drawer .lv357-select-menu > button:has(svg){
  background:#171717 !important;
  color:#fff !important;
  font-weight:600 !important;
}
html body aside.lv357-supplier-drawer div.relative > div.absolute > button:has(svg):hover,
html body aside.lv357-supplier-drawer .lv357-select-menu > button:has(svg):hover{
  background:#171717 !important;
  color:#fff !important;
}
html body aside.lv357-supplier-drawer div.relative > div.absolute > button > svg,
html body aside.lv357-supplier-drawer .lv357-select-menu > button > svg{
  position:absolute !important;
  right:12px !important;
  top:50% !important;
  transform:translateY(-50%) !important;
  margin:0 !important;
  line-height:1 !important;
  flex:0 0 auto !important;
  pointer-events:none !important;
}

/* Contact card geometry: keep controls inside the row; do not let dropdown change layout. */
html body aside.lv357-supplier-drawer .lv357-contacts-section .lv357-contact-card,
html body aside.lv357-supplier-drawer .lv357-contacts-section div.rounded-\[18px\]{
  overflow:visible !important;
}
html body aside.lv357-supplier-drawer .lv357-contacts-section .lv357-contact-grid{
  overflow:visible !important;
}


/* ==== lovix-v358-dev-workbench-radius.css ==== */
/* Lovix v358 · Development Workbench radius alignment
   Scope: only the dashboard / development workbench content area.
   Goal: match the softer, larger subpage card radius system without touching other pages or logic. */

.dashboard-workspace{
  --lv-dev-radius-board: 30px;
  --lv-dev-radius-card: 28px;
  --lv-dev-radius-section: 24px;
  --lv-dev-radius-row: 20px;
  --lv-dev-radius-control: 16px;
}

/* Main white boards: Today Priority Actions / Channel Distribution / Key Lists / embedded Account Hub. */
.dashboard-workspace .rounded-3xl,
.dashboard-workspace [class*="rounded-[30px]"],
.dashboard-workspace [class*="rounded-[28px]"]{
  border-radius: var(--lv-dev-radius-card) !important;
}

/* Secondary cards inside the boards. */
.dashboard-workspace .rounded-2xl,
.dashboard-workspace [class*="rounded-[26px]"],
.dashboard-workspace [class*="rounded-[24px]"],
.dashboard-workspace [class*="rounded-[22px]"]{
  border-radius: var(--lv-dev-radius-section) !important;
}

/* List rows / small modules should also become softer, but not oversized. */
.dashboard-workspace .rounded-xl,
.dashboard-workspace [class*="rounded-[20px]"],
.dashboard-workspace [class*="rounded-[18px]"]{
  border-radius: var(--lv-dev-radius-row) !important;
}

/* Icon boxes, mini company cards, compact inputs and tiny blocks. */
.dashboard-workspace .rounded-lg,
.dashboard-workspace .rounded-md,
.dashboard-workspace [class*="rounded-[16px]"],
.dashboard-workspace [class*="rounded-[14px]"],
.dashboard-workspace [class*="rounded-[12px]"],
.dashboard-workspace [class*="rounded-[10px]"]{
  border-radius: var(--lv-dev-radius-control) !important;
}

/* Keep intentional pills, dots, progress bars and decorative circles as true pills/circles. */
.dashboard-workspace .rounded-full,
.dashboard-workspace [style*="border-radius: 50%"],
.dashboard-workspace [style*="borderRadius: 50%"]{
  border-radius: 999px !important;
}

/* The transparent content background shell is not visible, but keep its curve aligned if it becomes visible later. */
.dashboard-workspace .dashboard-content-anchor > div[style*="border-radius"]{
  border-radius: var(--lv-dev-radius-board) !important;
}


/* ==== lovix-v360-dashboard-time-rail.css ==== */
/* Lovix v360 · Luxury SaaS / data-art daily task rail
   Only scopes the injected dashboard time rail and the optional task-page highlight. */

:root{
  --lv-rail-board-bg:#FFFFFF;
  --lv-rail-border:#E6E6E6;
  --lv-rail-text:#171717;
  --lv-rail-muted:#8E8E88;
  --lv-rail-soft:#B7B7AF;
  --lv-rail-line:#ECECE7;
  --lv-rail-line-deep:#DCDCD4;
  --lv-rail-green:#A7C83E;
  --lv-rail-green-deep:#86A92B;
  --lv-rail-green-soft:rgba(167,200,62,.20);
  --lv-rail-orange:#E99850;
  --lv-rail-orange-deep:#D9772B;
  --lv-rail-orange-soft:rgba(233,152,80,.22);
  --lv-rail-cream:#FBFAF4;
  --lv-rail-shadow:0 1px 0 rgba(0,0,0,.025), 0 22px 70px rgba(25,25,20,.035);
}

.dashboard-workspace .lovix-time-rail-board{
  position:relative;
  background:
    radial-gradient(circle at 9% 22%, rgba(207,220,40,.075) 0, rgba(207,220,40,0) 25%),
    radial-gradient(circle at 75% 44%, rgba(235,140,66,.075) 0, rgba(235,140,66,0) 28%),
    linear-gradient(180deg, #FFFFFF 0%, #FFF 54%, #FBFBF8 100%);
  border:1px solid var(--lv-rail-border);
  border-radius:30px;
  padding:24px 28px 28px;
  box-shadow:var(--lv-rail-shadow);
  overflow:visible;
  isolation:isolate;
}
.dashboard-workspace .lovix-time-rail-board::before{
  content:"";
  position:absolute;
  inset:1px;
  border-radius:29px;
  background:
    linear-gradient(90deg, rgba(255,255,255,.88), rgba(255,255,255,.24) 36%, rgba(255,255,255,.72)),
    repeating-linear-gradient(90deg, rgba(23,23,23,.018) 0, rgba(23,23,23,.018) 1px, transparent 1px, transparent 128px);
  pointer-events:none;
  z-index:0;
}
.dashboard-workspace .lovix-time-rail-board::after{
  content:"";
  position:absolute;
  left:28px;
  right:28px;
  bottom:0;
  height:74px;
  background:linear-gradient(180deg, rgba(255,255,255,0), rgba(250,250,246,.82));
  pointer-events:none;
  z-index:0;
}

.dashboard-workspace .lovix-time-rail-board:has(.lovix-time-rail-popover){
  z-index:80;
}

.dashboard-workspace .lovix-time-rail-head{
  position:relative;
  z-index:2;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  margin-bottom:12px;
}
.dashboard-workspace .lovix-time-rail-head-main{min-width:0;}
.dashboard-workspace .lovix-time-rail-title-row{
  display:flex;
  align-items:baseline;
  gap:9px;
  flex-wrap:wrap;
}
.dashboard-workspace .lovix-time-rail-title{
  font-size:16px;
  line-height:20px;
  font-weight:700;
  letter-spacing:-.02em;
  color:var(--lv-rail-text);
  margin:0;
}
.dashboard-workspace .lovix-time-rail-title-en{
  font-size:10.5px;
  line-height:16px;
  letter-spacing:.06em;
  color:#A1A19B;
  text-transform:uppercase;
}
.dashboard-workspace .lovix-time-rail-subtitle{
  font-size:11px;
  line-height:18px;
  color:#8F8F88;
  margin-top:5px;
}
.dashboard-workspace .lovix-time-rail-badges{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:8px;
}
.dashboard-workspace .lovix-time-rail-badge{
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-height:30px;
  padding:7px 11px;
  background:rgba(255,255,255,.74);
  border:1px solid rgba(230,230,224,.95);
  border-radius:999px;
  box-shadow:0 1px 0 rgba(255,255,255,.9) inset;
  backdrop-filter:blur(10px);
  font-size:10.5px;
  line-height:1;
  color:#6B6B65;
  white-space:nowrap;
}
.dashboard-workspace .lovix-time-rail-badge strong{
  font-size:12px;
  color:#171717;
  font-weight:700;
  letter-spacing:-.02em;
}
.dashboard-workspace .lovix-time-rail-badge-dot{
  width:7px;
  height:7px;
  border-radius:999px;
  flex:none;
}
.dashboard-workspace .lovix-time-rail-badge-dot.is-green{background:var(--lv-rail-green); box-shadow:0 0 0 4px var(--lv-rail-green-soft);}
.dashboard-workspace .lovix-time-rail-badge-dot.is-orange{background:var(--lv-rail-orange-deep); box-shadow:0 0 0 4px var(--lv-rail-orange-soft);}
.dashboard-workspace .lovix-time-rail-badge-dot.is-gray{background:#CFCFC8; box-shadow:0 0 0 4px rgba(207,207,200,.18);}

.dashboard-workspace .lovix-time-rail-scroll{
  position:relative;
  z-index:2;
  overflow-x:auto;
  overflow-y:visible;
  padding:0 2px 4px;
  scrollbar-width:none;
}
.dashboard-workspace .lovix-time-rail-scroll::-webkit-scrollbar{display:none;}
.dashboard-workspace .lovix-time-rail-grid{
  position:relative;
  min-width:1040px;
  display:grid;
  grid-template-columns:repeat(var(--rail-count, 8), minmax(110px,1fr));
  gap:0;
  padding:6px 2px 8px;
}
.dashboard-workspace .lovix-time-rail-grid::before,
.dashboard-workspace .lovix-time-rail-grid::after{
  content:"";
  position:absolute;
  left:3.2%;
  right:3.2%;
  top:50%;
  transform:translateY(-50%);
  border-radius:999px;
  pointer-events:none;
}
.dashboard-workspace .lovix-time-rail-grid::before{
  height:1px;
  background:linear-gradient(90deg, rgba(220,220,212,.14), rgba(176,176,166,.72) 10%, rgba(226,226,220,.84) 58%, rgba(220,220,212,.12));
  box-shadow:0 1px 0 rgba(255,255,255,.8);
}
.dashboard-workspace .lovix-time-rail-grid::after{
  right:calc(96.8% - var(--rail-progress, 0%));
  min-width:0;
  height:2px;
  background:linear-gradient(90deg, rgba(167,200,62,.92) 0%, rgba(206,218,68,.86) 36%, rgba(233,152,80,.88) 100%);
  box-shadow:0 0 18px rgba(207,220,40,.16), 0 0 22px rgba(229,132,56,.10);
}

.dashboard-workspace .lovix-time-node{
  position:relative;
  min-height:212px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:space-between;
  text-align:center;
  outline:none;
  cursor:pointer;
  -webkit-tap-highlight-color:transparent;
}
.dashboard-workspace .lovix-time-node.pos-top{padding-bottom:108px; justify-content:flex-start;}
.dashboard-workspace .lovix-time-node.pos-bottom{padding-top:108px; justify-content:flex-end;}
.dashboard-workspace .lovix-time-node-info{
  max-width:126px;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:4px;
  transition:transform .22s ease, opacity .22s ease, filter .22s ease;
}
.dashboard-workspace .lovix-time-node:hover .lovix-time-node-info,
.dashboard-workspace .lovix-time-node.is-open .lovix-time-node-info{
  transform:translateY(-1px);
  filter:saturate(1.03);
}
.dashboard-workspace .lovix-time-node-time{
  font-size:11px;
  line-height:1;
  letter-spacing:.105em;
  text-transform:uppercase;
  color:#A5A59E;
  font-weight:650;
  font-variant-numeric:tabular-nums;
}
.dashboard-workspace .lovix-time-node-task{
  font-size:12.5px;
  line-height:15px;
  font-weight:750;
  letter-spacing:-.015em;
  color:#171717;
}
.dashboard-workspace .lovix-time-node-note{
  font-size:10px;
  line-height:13px;
  color:#999991;
  white-space:nowrap;
}
.dashboard-workspace .lovix-time-node-status{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  align-self:center;
  margin-top:6px;
  padding:5px 10px 4px;
  border-radius:999px;
  border:1px solid rgba(236,236,228,.95);
  background:rgba(255,255,255,.64);
  box-shadow:0 1px 0 rgba(255,255,255,.88) inset;
  font-size:9.2px;
  line-height:1;
  letter-spacing:.105em;
  text-transform:uppercase;
  color:#9C9C94;
}
.dashboard-workspace .lovix-time-node.is-complete .lovix-time-node-status{
  color:#6C8527;
  background:rgba(167,200,62,.105);
  border-color:rgba(167,200,62,.20);
}
.dashboard-workspace .lovix-time-node.is-complete-alt .lovix-time-node-status,
.dashboard-workspace .lovix-time-node.is-active .lovix-time-node-status{
  color:#A5612B;
  background:rgba(233,152,80,.12);
  border-color:rgba(233,152,80,.20);
}

.dashboard-workspace .lovix-time-node-dot-wrap{
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  width:44px;
  height:44px;
  display:flex;
  align-items:center;
  justify-content:center;
  z-index:3;
}
.dashboard-workspace .lovix-time-node.is-sm .lovix-time-node-dot-wrap{width:38px;height:38px;}
.dashboard-workspace .lovix-time-node.is-md .lovix-time-node-dot-wrap{width:46px;height:46px;}
.dashboard-workspace .lovix-time-node.is-lg .lovix-time-node-dot-wrap{width:56px;height:56px;}
.dashboard-workspace .lovix-time-node-dot-wrap::before,
.dashboard-workspace .lovix-time-node-dot-wrap::after{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  width:18px;
  height:18px;
  border-radius:999px;
  transform:translate(-50%,-50%) scale(.72);
  opacity:0;
  pointer-events:none;
  will-change:transform, opacity, filter;
}
.dashboard-workspace .lovix-time-node.is-complete .lovix-time-node-dot-wrap::before,
.dashboard-workspace .lovix-time-node.is-complete .lovix-time-node-dot-wrap::after{
  background:radial-gradient(circle, rgba(167,200,62,.38) 0%, rgba(167,200,62,.16) 45%, rgba(167,200,62,0) 72%);
  animation:lovixRailBeaconGreen 3.45s cubic-bezier(.15,.62,.2,1) infinite;
}
.dashboard-workspace .lovix-time-node.is-complete-alt .lovix-time-node-dot-wrap::before,
.dashboard-workspace .lovix-time-node.is-complete-alt .lovix-time-node-dot-wrap::after,
.dashboard-workspace .lovix-time-node.is-active .lovix-time-node-dot-wrap::before,
.dashboard-workspace .lovix-time-node.is-active .lovix-time-node-dot-wrap::after{
  background:radial-gradient(circle, rgba(233,152,80,.46) 0%, rgba(233,152,80,.17) 48%, rgba(233,152,80,0) 74%);
  animation:lovixRailBeaconOrange 2.62s cubic-bezier(.15,.62,.2,1) infinite;
}
.dashboard-workspace .lovix-time-node.is-active .lovix-time-node-dot-wrap::after,
.dashboard-workspace .lovix-time-node.is-complete .lovix-time-node-dot-wrap::after,
.dashboard-workspace .lovix-time-node.is-complete-alt .lovix-time-node-dot-wrap::after{
  animation-delay:1.1s;
}
.dashboard-workspace .lovix-time-node.is-active .lovix-time-node-dot-wrap::before{animation-duration:1.92s;}
.dashboard-workspace .lovix-time-node-dot{
  position:relative;
  width:14px;
  height:14px;
  border-radius:999px;
  border:1px solid rgba(216,216,210,.92);
  background:linear-gradient(180deg,#FFFFFF 0%,#F8F8F5 100%);
  z-index:4;
  box-shadow:0 1px 2px rgba(0,0,0,.06), 0 0 0 5px rgba(245,245,241,.62);
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.dashboard-workspace .lovix-time-node.is-sm .lovix-time-node-dot{width:11px;height:11px;}
.dashboard-workspace .lovix-time-node.is-md .lovix-time-node-dot{width:14px;height:14px;}
.dashboard-workspace .lovix-time-node.is-lg .lovix-time-node-dot{width:19px;height:19px;}
.dashboard-workspace .lovix-time-node:hover .lovix-time-node-dot,
.dashboard-workspace .lovix-time-node.is-open .lovix-time-node-dot{transform:scale(1.08);}
.dashboard-workspace .lovix-time-node.is-complete .lovix-time-node-dot,
.dashboard-workspace .lovix-time-node.is-complete-alt .lovix-time-node-dot,
.dashboard-workspace .lovix-time-node.is-active .lovix-time-node-dot{border-color:transparent;}
.dashboard-workspace .lovix-time-node.is-complete .lovix-time-node-dot{
  background:radial-gradient(circle at 38% 28%, #E7F3AE 0%, #BFD85F 34%, #95BC31 100%);
  box-shadow:0 0 0 6px rgba(167,200,62,.12), 0 8px 18px rgba(115,142,45,.16), 0 0 26px rgba(167,200,62,.18);
}
.dashboard-workspace .lovix-time-node.is-complete-alt .lovix-time-node-dot,
.dashboard-workspace .lovix-time-node.is-active .lovix-time-node-dot{
  background:radial-gradient(circle at 38% 28%, #FFD8AE 0%, #F1A15A 36%, #D9772B 100%);
  box-shadow:0 0 0 7px rgba(233,152,80,.13), 0 8px 22px rgba(185,99,38,.18), 0 0 34px rgba(233,152,80,.20);
}
.dashboard-workspace .lovix-time-node.is-active .lovix-time-node-dot{
  animation:lovixRailCoreBreath 1.92s ease-in-out infinite;
}
.dashboard-workspace .lovix-time-node:focus-visible .lovix-time-node-dot-wrap{
  outline:2px solid rgba(207,220,40,.52);
  outline-offset:3px;
  border-radius:999px;
}

.dashboard-workspace .lovix-time-rail-popover{
  position:absolute;
  left:50%;
  top:0;
  width:268px;
  padding:14px 14px 13px;
  border-radius:22px;
  border:1px solid rgba(226,226,218,.98);
  background:#FFFFFF;
  box-shadow:0 22px 70px rgba(27,27,22,.14), 0 1px 0 rgba(255,255,255,.92) inset;
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
  text-align:left;
  z-index:10000;
  cursor:default;
  animation:lovixRailPopoverIn .18s ease-out both;
}
.dashboard-workspace .lovix-time-rail-popover{transform:translateX(-50%);}
.dashboard-workspace .lovix-time-rail-popover,
.dashboard-workspace .lovix-time-rail-popover *{
  text-shadow:none;
}

.dashboard-workspace .lovix-time-pop-arrow{
  position:absolute;
  left:50%;
  width:12px;
  height:12px;
  background:#FFFFFF;
  border-left:1px solid rgba(226,226,218,.98);
  border-top:1px solid rgba(226,226,218,.98);
}
.dashboard-workspace .lovix-time-rail-popover.is-below .lovix-time-pop-arrow{top:-6px; transform:translateX(-50%) rotate(45deg);}
.dashboard-workspace .lovix-time-rail-popover.is-above .lovix-time-pop-arrow{bottom:-6px; transform:translateX(-50%) rotate(225deg);}
.dashboard-workspace .lovix-time-pop-topline{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  font-size:10.5px;
  line-height:1;
  color:#97978F;
  font-variant-numeric:tabular-nums;
}
.dashboard-workspace .lovix-time-pop-topline em{
  font-style:normal;
  color:#A6632D;
  padding:4px 7px;
  border-radius:999px;
  background:rgba(233,152,80,.11);
  border:1px solid rgba(233,152,80,.16);
}
.dashboard-workspace .lovix-time-pop-title{
  margin-top:10px;
  font-size:13px;
  line-height:18px;
  font-weight:750;
  letter-spacing:-.015em;
  color:#171717;
}
.dashboard-workspace .lovix-time-pop-meta{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin-top:10px;
}
.dashboard-workspace .lovix-time-pop-meta span{
  max-width:100%;
  min-height:23px;
  display:inline-flex;
  align-items:center;
  padding:0 8px;
  border-radius:999px;
  border:1px solid #EFEFEA;
  background:#FAFAF7;
  color:#73736C;
  font-size:10px;
  line-height:1;
}
.dashboard-workspace .lovix-time-pop-progress{
  position:relative;
  height:4px;
  margin-top:12px;
  border-radius:999px;
  background:#EFEFEA;
  overflow:hidden;
}
.dashboard-workspace .lovix-time-pop-progress span{
  display:block;
  height:100%;
  border-radius:999px;
  background:linear-gradient(90deg, var(--lv-rail-green), var(--lv-rail-orange));
}
.dashboard-workspace .lovix-time-pop-dod{
  margin-top:10px;
  font-size:11px;
  line-height:18px;
  color:#777770;
}
.dashboard-workspace .lovix-time-pop-actions{
  display:flex;
  justify-content:flex-end;
  gap:8px;
  margin-top:12px;
}
.dashboard-workspace .lovix-time-pop-btn{
  height:32px;
  padding:0 11px;
  border-radius:999px;
  border:1px solid #E8E8E1;
  background:#FFFFFF;
  color:#565650;
  font-size:11px;
  line-height:1;
  cursor:pointer;
  transition:transform .18s ease, background .18s ease, border-color .18s ease, opacity .18s ease;
}
.dashboard-workspace .lovix-time-pop-btn:hover{transform:translateY(-1px); background:#FAFAF7;}
.dashboard-workspace .lovix-time-pop-btn:disabled{opacity:.52; cursor:not-allowed; transform:none;}
.dashboard-workspace .lovix-time-pop-btn.primary{
  border-color:#171717;
  background:#171717;
  color:#FFFFFF;
}
.dashboard-workspace .lovix-time-pop-btn.primary span{font-size:12px; margin-left:3px;}

.lvx-rail-focus{
  position:relative !important;
  outline:2px solid rgba(207,220,40,.68) !important;
  outline-offset:4px !important;
  box-shadow:0 0 0 8px rgba(207,220,40,.13), 0 22px 70px rgba(23,23,23,.10) !important;
  z-index:5 !important;
}

@keyframes lovixRailBeaconGreen{
  0%{opacity:.58; transform:translate(-50%,-50%) scale(.62); filter:blur(0px);}
  58%{opacity:.12; transform:translate(-50%,-50%) scale(2.25); filter:blur(.5px);}
  100%{opacity:0; transform:translate(-50%,-50%) scale(3.15); filter:blur(1px);}
}
@keyframes lovixRailBeaconOrange{
  0%{opacity:.68; transform:translate(-50%,-50%) scale(.62); filter:blur(0px);}
  58%{opacity:.14; transform:translate(-50%,-50%) scale(2.42); filter:blur(.7px);}
  100%{opacity:0; transform:translate(-50%,-50%) scale(3.32); filter:blur(1.2px);}
}
@keyframes lovixRailCoreBreath{
  0%,100%{transform:scale(1); box-shadow:0 0 0 7px rgba(233,152,80,.13), 0 8px 22px rgba(185,99,38,.18), 0 0 30px rgba(233,152,80,.16);}
  50%{transform:scale(1.13); box-shadow:0 0 0 10px rgba(233,152,80,.10), 0 10px 28px rgba(185,99,38,.22), 0 0 44px rgba(233,152,80,.28);}
}
@keyframes lovixRailPopoverIn{
  from{opacity:0; filter:blur(4px);}
  to{opacity:1; filter:blur(0);}
}

@media (prefers-reduced-motion: reduce){
  .dashboard-workspace .lovix-time-node-dot-wrap::before,
  .dashboard-workspace .lovix-time-node-dot-wrap::after,
  .dashboard-workspace .lovix-time-node.is-active .lovix-time-node-dot{animation:none !important;}
}
@media (max-width: 1180px){
  .dashboard-workspace .lovix-time-rail-head{flex-direction:column; align-items:flex-start;}
  .dashboard-workspace .lovix-time-rail-badges{justify-content:flex-start;}
}
@media (max-width: 900px){
  .dashboard-workspace .lovix-time-rail-board{padding:20px 18px 22px; border-radius:26px;}
  .dashboard-workspace .lovix-time-rail-grid{min-width:920px;}
  .dashboard-workspace .lovix-time-rail-popover{width:248px;}
}


/* ==== lovix-v365-axis-hard-transplant.css ==== */
/* Lovix v365 · HARD axis transplant from uploaded v359 green/black breathing rail
   Scope: only the time-rail axis / nodes / status chips.
   Important: v359 JS is NOT used. v360 JS keeps sample data, click cards, and task-page linkage.
*/

:root{
  --lv365-green:#A6CE39;
  --lv365-green-deep:#6F8F18;
  --lv365-black:#151515;
  --lv365-gray:#D8D8D2;
}

/* make v360 badge's orange class render as v359 black marker */
.dashboard-workspace .lovix-time-rail-badge-dot.is-orange,
.dashboard-workspace .lovix-time-rail-badge-dot.is-black{
  background:#151515 !important;
  box-shadow:0 0 0 4px rgba(166,206,57,.16), 0 0 16px rgba(166,206,57,.12) !important;
}
.dashboard-workspace .lovix-time-rail-badge-dot.is-green{
  background:#A6CE39 !important;
  box-shadow:0 0 0 4px rgba(166,206,57,.22) !important;
}

/* exact v359 axis rail, adapted only to support v360 dynamic node count */
.dashboard-workspace .lovix-time-rail-grid{
  position:relative !important;
  min-width:1040px !important;
  display:grid !important;
  grid-template-columns:repeat(var(--rail-count, 8),minmax(110px,1fr)) !important;
  gap:0 !important;
  padding:14px 2px 10px !important;
  min-height:unset !important;
  height:auto !important;
  align-items:stretch !important;
}
.dashboard-workspace .lovix-time-rail-grid::before{
  content:"" !important;
  position:absolute !important;
  left:4% !important;
  right:4% !important;
  top:50% !important;
  transform:translateY(-50%) !important;
  height:2px !important;
  border-radius:999px !important;
  background:linear-gradient(90deg, rgba(21,21,21,.88) 0%, rgba(21,21,21,.72) 10%, rgba(166,206,57,.86) 30%, rgba(207,220,40,.64) 52%, rgba(21,21,21,.52) 74%, rgba(233,233,228,1) 100%) !important;
  box-shadow:0 0 18px rgba(166,206,57,.10) !important;
  opacity:1 !important;
  pointer-events:none !important;
}
.dashboard-workspace .lovix-time-rail-grid::after{
  content:none !important;
  display:none !important;
  background:none !important;
  box-shadow:none !important;
}

/* exact v359 node layout */
.dashboard-workspace .lovix-time-node{
  position:relative !important;
  min-height:210px !important;
  height:auto !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:space-between !important;
  text-align:center !important;
  outline:none !important;
  cursor:pointer !important;
}
.dashboard-workspace .lovix-time-node.pos-top{padding:0 0 108px !important; justify-content:flex-start !important;}
.dashboard-workspace .lovix-time-node.pos-bottom{padding:108px 0 0 !important; justify-content:flex-end !important;}

.dashboard-workspace .lovix-time-node-info{
  max-width:118px !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  gap:4px !important;
  transform:none !important;
  filter:none !important;
  opacity:1 !important;
}
.dashboard-workspace .lovix-time-node:hover .lovix-time-node-info,
.dashboard-workspace .lovix-time-node.is-open .lovix-time-node-info{
  transform:none !important;
  filter:none !important;
}
.dashboard-workspace .lovix-time-node-time{
  font-size:11px !important;
  line-height:1 !important;
  letter-spacing:.08em !important;
  text-transform:uppercase !important;
  color:#A3A39C !important;
  font-weight:400 !important;
}
.dashboard-workspace .lovix-time-node-task{
  font-size:12.5px !important;
  line-height:15px !important;
  font-weight:700 !important;
  color:#171717 !important;
  letter-spacing:0 !important;
}
.dashboard-workspace .lovix-time-node-note{
  font-size:10px !important;
  line-height:13px !important;
  color:#9A9A93 !important;
}

/* exact v359 ripple and node sizing */
.dashboard-workspace .lovix-time-node-dot-wrap{
  position:absolute !important;
  left:50% !important;
  top:50% !important;
  transform:translate(-50%,-50%) !important;
  width:58px !important;
  height:58px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  border-radius:999px !important;
  overflow:visible !important;
  box-shadow:none !important;
  z-index:3 !important;
  --lv-ripple-rgb:166,206,57;
  --lv-ripple-1:.18;
  --lv-ripple-2:.115;
  --lv-ripple-3:.07;
  --lv-ripple-speed:3.15s;
}
.dashboard-workspace .lovix-time-node.is-sm .lovix-time-node-dot-wrap{width:42px !important;height:42px !important;}
.dashboard-workspace .lovix-time-node.is-md .lovix-time-node-dot-wrap{width:58px !important;height:58px !important;}
.dashboard-workspace .lovix-time-node.is-lg .lovix-time-node-dot-wrap{width:76px !important;height:76px !important;}

.dashboard-workspace .lovix-time-node-dot{
  position:relative !important;
  width:15px !important;
  height:15px !important;
  border-radius:999px !important;
  border:2px solid #D8D8D2 !important;
  background:#FFFFFF !important;
  z-index:3 !important;
  box-shadow:none !important;
  transform:none !important;
  overflow:visible !important;
  animation:none !important;
}
.dashboard-workspace .lovix-time-node.is-sm .lovix-time-node-dot{width:10px !important;height:10px !important;}
.dashboard-workspace .lovix-time-node.is-md .lovix-time-node-dot{width:16px !important;height:16px !important;}
.dashboard-workspace .lovix-time-node.is-lg .lovix-time-node-dot{width:22px !important;height:22px !important;}

.dashboard-workspace .lovix-time-node-dot-wrap::before,
.dashboard-workspace .lovix-time-node-dot-wrap::after,
.dashboard-workspace .lovix-time-node-dot::before{
  content:"" !important;
  position:absolute !important;
  left:50% !important;
  top:50% !important;
  transform:translate(-50%,-50%) scale(.72) !important;
  border-radius:999px !important;
  pointer-events:none !important;
  opacity:0;
}
.dashboard-workspace .lovix-time-node-dot-wrap::before{
  width:58% !important;
  height:58% !important;
  border:1px solid rgba(var(--lv-ripple-rgb), var(--lv-ripple-1)) !important;
  box-shadow:0 0 18px rgba(var(--lv-ripple-rgb), .12) !important;
  animation:lovixRailRipple 3.15s ease-out infinite !important;
  animation-duration:var(--lv-ripple-speed) !important;
}
.dashboard-workspace .lovix-time-node-dot-wrap::after{
  width:76% !important;
  height:76% !important;
  border:1px solid rgba(var(--lv-ripple-rgb), var(--lv-ripple-2)) !important;
  box-shadow:0 0 24px rgba(var(--lv-ripple-rgb), .075) !important;
  animation:lovixRailRipple 3.15s ease-out infinite .42s !important;
  animation-duration:var(--lv-ripple-speed) !important;
}
.dashboard-workspace .lovix-time-node-dot::before{
  width:128% !important;
  height:128% !important;
  background:rgba(var(--lv-ripple-rgb), var(--lv-ripple-3)) !important;
  box-shadow:0 0 30px rgba(var(--lv-ripple-rgb), .08) !important;
  z-index:-1 !important;
  animation:lovixRailRipple 3.15s ease-out infinite .84s !important;
  animation-duration:var(--lv-ripple-speed) !important;
}
.dashboard-workspace .lovix-time-node-dot::after{
  content:none !important;
  display:none !important;
  animation:none !important;
}

/* exact v359 state mapping */
.dashboard-workspace .lovix-time-node.is-pending .lovix-time-node-dot-wrap{
  --lv-ripple-rgb:21,21,21;
  --lv-ripple-1:.075;
  --lv-ripple-2:.045;
  --lv-ripple-3:.025;
  --lv-ripple-speed:4.2s;
}
.dashboard-workspace .lovix-time-node.is-pending .lovix-time-node-dot{
  border-color:#151515 !important;
  background:#FFFFFF !important;
  box-shadow:0 0 0 5px rgba(21,21,21,.04) !important;
}
.dashboard-workspace .lovix-time-node.is-complete .lovix-time-node-dot,
.dashboard-workspace .lovix-time-node.is-complete-alt .lovix-time-node-dot,
.dashboard-workspace .lovix-time-node.is-active .lovix-time-node-dot{
  border-color:transparent !important;
}
.dashboard-workspace .lovix-time-node.is-complete .lovix-time-node-dot-wrap{
  --lv-ripple-rgb:166,206,57;
  --lv-ripple-1:.20;
  --lv-ripple-2:.12;
  --lv-ripple-3:.07;
  --lv-ripple-speed:3.05s;
}
.dashboard-workspace .lovix-time-node.is-complete .lovix-time-node-dot{
  background:#A6CE39 !important;
  box-shadow:0 0 0 5px rgba(166,206,57,.13), 0 0 22px rgba(166,206,57,.15) !important;
}
.dashboard-workspace .lovix-time-node.is-complete-alt .lovix-time-node-dot-wrap{
  --lv-ripple-rgb:166,206,57;
  --lv-ripple-1:.17;
  --lv-ripple-2:.10;
  --lv-ripple-3:.055;
  --lv-ripple-speed:3.3s;
}
.dashboard-workspace .lovix-time-node.is-complete-alt .lovix-time-node-dot{
  background:#151515 !important;
  box-shadow:0 0 0 5px rgba(166,206,57,.14), 0 0 24px rgba(166,206,57,.18) !important;
}
.dashboard-workspace .lovix-time-node.is-active .lovix-time-node-dot-wrap{
  --lv-ripple-rgb:166,206,57;
  --lv-ripple-1:.26;
  --lv-ripple-2:.16;
  --lv-ripple-3:.09;
  --lv-ripple-speed:2.2s;
}
.dashboard-workspace .lovix-time-node.is-active .lovix-time-node-dot{
  background:#151515 !important;
  border-color:transparent !important;
  box-shadow:0 0 0 6px rgba(166,206,57,.18), 0 0 28px rgba(166,206,57,.24) !important;
}

/* exact v359 status-chip visual; does not touch popover/card behavior */
.dashboard-workspace .lovix-time-node-status{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  align-self:center !important;
  margin-top:4px !important;
  padding:4px 8px !important;
  border-radius:999px !important;
  border:1px solid #ECECE6 !important;
  background:#FAFAF7 !important;
  box-shadow:none !important;
  font-size:9px !important;
  line-height:1 !important;
  letter-spacing:.08em !important;
  text-transform:uppercase !important;
  color:#A0A099 !important;
}
.dashboard-workspace .lovix-time-node.is-complete .lovix-time-node-status{
  color:#5F7F16 !important;
  background:rgba(166,206,57,.12) !important;
  border-color:rgba(166,206,57,.20) !important;
}
.dashboard-workspace .lovix-time-node.is-complete-alt .lovix-time-node-status,
.dashboard-workspace .lovix-time-node.is-active .lovix-time-node-status{
  color:#151515 !important;
  background:rgba(166,206,57,.13) !important;
  border-color:rgba(166,206,57,.22) !important;
}

/* remove local orange accent only inside this time-rail module */
.dashboard-workspace .lovix-time-pop-topline em{
  color:#151515 !important;
  background:rgba(166,206,57,.13) !important;
  border-color:rgba(166,206,57,.22) !important;
}
.dashboard-workspace .lovix-time-pop-link{
  background:#151515 !important;
}

@keyframes lovixRailRipple{
  0%{opacity:1; transform:translate(-50%,-50%) scale(.58);}
  62%{opacity:.28; transform:translate(-50%,-50%) scale(1.26);}
  100%{opacity:0; transform:translate(-50%,-50%) scale(1.72);}
}

@media (max-width: 900px){
  .dashboard-workspace .lovix-time-rail-grid{min-width:920px !important;}
}


/* ==== lovix-v366-axis-gradient-logic.css ==== */
/* Lovix v366 · Dynamic axis gradient logic refinement
   Scope: only optimize the connecting line color logic between nodes.
   Keeps all node / card / sample-data behavior intact.
*/

.dashboard-workspace .lovix-time-rail-grid::before{
  background:var(--lv366-axis-gradient, linear-gradient(90deg, #A6CE39 0%, #A6CE39 100%)) !important;
  box-shadow:0 0 14px rgba(166,206,57,.08) !important;
}


/* ==== lovix-v367-dark-green-node-tune.css ==== */
/* Lovix v367 · Dark green node harmony tune
   Scope: only recolor the previously black timeline nodes to a dark moss green,
   while preserving the axis design, ripple system, and all interactions.
*/

:root{
  --lv367-dark-green:#2F4A33;
  --lv367-dark-green-soft:rgba(47,74,51,.18);
  --lv367-dark-green-soft-2:rgba(47,74,51,.24);
  --lv367-dark-green-soft-3:rgba(47,74,51,.12);
}

/* summary badge dot that previously rendered black */
.dashboard-workspace .lovix-time-rail-badge-dot.is-orange,
.dashboard-workspace .lovix-time-rail-badge-dot.is-black{
  background:var(--lv367-dark-green) !important;
  box-shadow:0 0 0 4px rgba(166,206,57,.16), 0 0 16px rgba(47,74,51,.10) !important;
}

/* recolor the formerly black nodes */
.dashboard-workspace .lovix-time-node.is-complete-alt .lovix-time-node-dot,
.dashboard-workspace .lovix-time-node.is-active .lovix-time-node-dot{
  background:var(--lv367-dark-green) !important;
  box-shadow:0 0 0 5px rgba(166,206,57,.14), 0 0 24px rgba(47,74,51,.18) !important;
}
.dashboard-workspace .lovix-time-node.is-active .lovix-time-node-dot{
  box-shadow:0 0 0 6px rgba(166,206,57,.18), 0 0 28px rgba(47,74,51,.22) !important;
}

/* chips / small accents that inherited the black tone */
.dashboard-workspace .lovix-time-node.is-complete-alt .lovix-time-node-status,
.dashboard-workspace .lovix-time-node.is-active .lovix-time-node-status{
  color:var(--lv367-dark-green) !important;
  background:rgba(166,206,57,.12) !important;
  border-color:rgba(166,206,57,.22) !important;
}
.dashboard-workspace .lovix-time-pop-topline em{
  color:var(--lv367-dark-green) !important;
}


/* ==== lovix-v368-rail-palette-unify.css ==== */
/* Lovix v368 · Rail palette unify
   Scope: unify the timeline palette with the rest of the Lovix system,
   and remove all residual orange from node halos / ripple layers.
*/

:root{
  --lv368-green:#A6CE39;
  --lv368-green-soft:#CFDC28;
  --lv368-green-pale:rgba(166,206,57,.10);
  --lv368-green-pale-2:rgba(166,206,57,.16);
  --lv368-deep-green:#36513B;
  --lv368-deep-green-2:#314934;
  --lv368-deep-green-soft:rgba(54,81,59,.10);
  --lv368-deep-green-soft-2:rgba(54,81,59,.18);
  --lv368-neutral:#D4D8D0;
  --lv368-neutral-deep:#98A08F;
}

/* remap any legacy orange variables inside the rail module */
.dashboard-workspace .lovix-time-rail-board{
  --lv-rail-orange:var(--lv368-deep-green) !important;
  --lv-rail-orange-deep:var(--lv368-deep-green) !important;
  --lv-rail-orange-soft:rgba(54,81,59,.12) !important;
  --lv362-rail-orange:var(--lv368-deep-green) !important;
  --lv362-rail-orange-soft:rgba(54,81,59,.12) !important;
}

/* overall axis color becomes slightly softer and more integrated */
.dashboard-workspace .lovix-time-rail-grid::before{
  box-shadow:0 0 12px rgba(166,206,57,.05) !important;
}

/* green nodes */
.dashboard-workspace .lovix-time-node.is-complete .lovix-time-node-dot{
  background:var(--lv368-green) !important;
  border-color:var(--lv368-green) !important;
  box-shadow:0 0 0 5px rgba(166,206,57,.10), 0 0 20px rgba(166,206,57,.12) !important;
}

/* formerly black nodes -> dark moss green */
.dashboard-workspace .lovix-time-node.is-complete-alt .lovix-time-node-dot,
.dashboard-workspace .lovix-time-node.is-active .lovix-time-node-dot{
  background:var(--lv368-deep-green) !important;
  border-color:var(--lv368-deep-green) !important;
  box-shadow:0 0 0 5px rgba(166,206,57,.10), 0 0 22px rgba(54,81,59,.16) !important;
}
.dashboard-workspace .lovix-time-node.is-active .lovix-time-node-dot{
  box-shadow:0 0 0 6px rgba(166,206,57,.12), 0 0 26px rgba(54,81,59,.18) !important;
}

/* pending nodes become quieter and more system-consistent */
.dashboard-workspace .lovix-time-node.is-pending .lovix-time-node-dot{
  background:#FFFFFF !important;
  border-color:#CFD5CB !important;
  box-shadow:0 0 0 5px rgba(120,132,113,.035) !important;
}

/* hard-remove orange ripple behavior and rebuild all ripples in green family only */
.dashboard-workspace .lovix-time-node.is-complete .lovix-time-node-dot-wrap::before,
.dashboard-workspace .lovix-time-node.is-complete .lovix-time-node-dot-wrap::after,
.dashboard-workspace .lovix-time-node.is-complete .lovix-time-node-dot::before,
.dashboard-workspace .lovix-time-node.is-complete-alt .lovix-time-node-dot-wrap::before,
.dashboard-workspace .lovix-time-node.is-complete-alt .lovix-time-node-dot-wrap::after,
.dashboard-workspace .lovix-time-node.is-complete-alt .lovix-time-node-dot::before,
.dashboard-workspace .lovix-time-node.is-active .lovix-time-node-dot-wrap::before,
.dashboard-workspace .lovix-time-node.is-active .lovix-time-node-dot-wrap::after,
.dashboard-workspace .lovix-time-node.is-active .lovix-time-node-dot::before{
  animation-name:lovixRailRippleV368 !important;
}

/* light-green node ripple */
.dashboard-workspace .lovix-time-node.is-complete .lovix-time-node-dot-wrap::before{
  border:1px solid rgba(166,206,57,.22) !important;
  background:rgba(166,206,57,.06) !important;
  box-shadow:0 0 18px rgba(166,206,57,.10) !important;
}
.dashboard-workspace .lovix-time-node.is-complete .lovix-time-node-dot-wrap::after{
  border:1px solid rgba(166,206,57,.14) !important;
  background:rgba(166,206,57,.035) !important;
  box-shadow:0 0 24px rgba(166,206,57,.06) !important;
}
.dashboard-workspace .lovix-time-node.is-complete .lovix-time-node-dot::before{
  background:rgba(166,206,57,.045) !important;
  box-shadow:0 0 28px rgba(166,206,57,.05) !important;
}

/* dark-green node ripple — still green-family, no orange at all */
.dashboard-workspace .lovix-time-node.is-complete-alt .lovix-time-node-dot-wrap::before,
.dashboard-workspace .lovix-time-node.is-active .lovix-time-node-dot-wrap::before{
  border:1px solid rgba(90,122,89,.24) !important;
  background:rgba(166,206,57,.055) !important;
  box-shadow:0 0 18px rgba(54,81,59,.09) !important;
}
.dashboard-workspace .lovix-time-node.is-complete-alt .lovix-time-node-dot-wrap::after,
.dashboard-workspace .lovix-time-node.is-active .lovix-time-node-dot-wrap::after{
  border:1px solid rgba(90,122,89,.16) !important;
  background:rgba(166,206,57,.03) !important;
  box-shadow:0 0 24px rgba(54,81,59,.06) !important;
}
.dashboard-workspace .lovix-time-node.is-complete-alt .lovix-time-node-dot::before,
.dashboard-workspace .lovix-time-node.is-active .lovix-time-node-dot::before{
  background:rgba(54,81,59,.045) !important;
  box-shadow:0 0 30px rgba(54,81,59,.055) !important;
}

/* pending ripple quiet */
.dashboard-workspace .lovix-time-node.is-pending .lovix-time-node-dot-wrap::before{
  border:1px solid rgba(152,160,143,.10) !important;
  background:rgba(152,160,143,.03) !important;
  box-shadow:none !important;
}
.dashboard-workspace .lovix-time-node.is-pending .lovix-time-node-dot-wrap::after{
  border:1px solid rgba(152,160,143,.06) !important;
  background:rgba(152,160,143,.018) !important;
  box-shadow:none !important;
}
.dashboard-workspace .lovix-time-node.is-pending .lovix-time-node-dot::before{
  background:rgba(152,160,143,.02) !important;
  box-shadow:none !important;
}

/* badge / chip / tiny accent cleanup */
.dashboard-workspace .lovix-time-rail-badge-dot.is-orange,
.dashboard-workspace .lovix-time-rail-badge-dot.is-black{
  background:var(--lv368-deep-green) !important;
  box-shadow:0 0 0 4px rgba(54,81,59,.09), 0 0 14px rgba(166,206,57,.08) !important;
}
.dashboard-workspace .lovix-time-node.is-complete-alt .lovix-time-node-status,
.dashboard-workspace .lovix-time-node.is-active .lovix-time-node-status,
.dashboard-workspace .lovix-time-pop-topline em{
  color:var(--lv368-deep-green) !important;
  background:rgba(166,206,57,.10) !important;
  border-color:rgba(166,206,57,.18) !important;
}

@keyframes lovixRailRippleV368{
  0%{opacity:1; transform:translate(-50%,-50%) scale(.58);} 
  62%{opacity:.22; transform:translate(-50%,-50%) scale(1.22);} 
  100%{opacity:0; transform:translate(-50%,-50%) scale(1.68);} 
}


/* ==== lovix-v369-rail-line-down-2px.css ==== */
/* Lovix v369 · Time rail horizontal line lowered by 2px
   Scope: ONLY move the connecting horizontal rail line down 2px.
   Does not change node colors, node sizes, cards, text, layout, or interactions.
*/

.dashboard-workspace .lovix-time-rail-grid::before{
  top:calc(50% + 2px) !important;
  transform:translateY(-50%) !important;
}


/* ==== lovix-v370-rail-status-bind.css ==== */
/* Lovix v370 · Rail status pill binding
   Scope: only the time-rail small status tags.
   Pill color is now bound to real task status + deadline state.
*/
:root{
  --lv370-pill-orange-text:#B36B31;
  --lv370-pill-orange-bg:rgba(233,152,80,.12);
  --lv370-pill-orange-border:rgba(233,152,80,.24);

  --lv370-pill-green-text:#5F7F16;
  --lv370-pill-green-bg:rgba(166,206,57,.12);
  --lv370-pill-green-border:rgba(166,206,57,.24);

  --lv370-pill-red-text:#BA5D5D;
  --lv370-pill-red-bg:rgba(224,114,114,.11);
  --lv370-pill-red-border:rgba(224,114,114,.22);

  --lv370-pill-gray-text:#8F948C;
  --lv370-pill-gray-bg:rgba(160,167,158,.10);
  --lv370-pill-gray-border:rgba(160,167,158,.20);
}

.dashboard-workspace .lovix-time-node .lovix-time-node-status{
  transition:background-color .2s ease, border-color .2s ease, color .2s ease;
}

.dashboard-workspace .lovix-time-node .lovix-time-node-status.is-done{
  color:var(--lv370-pill-orange-text) !important;
  background:var(--lv370-pill-orange-bg) !important;
  border-color:var(--lv370-pill-orange-border) !important;
}

.dashboard-workspace .lovix-time-node .lovix-time-node-status.is-todo{
  color:var(--lv370-pill-green-text) !important;
  background:var(--lv370-pill-green-bg) !important;
  border-color:var(--lv370-pill-green-border) !important;
}

.dashboard-workspace .lovix-time-node .lovix-time-node-status.is-overdue{
  color:var(--lv370-pill-red-text) !important;
  background:var(--lv370-pill-red-bg) !important;
  border-color:var(--lv370-pill-red-border) !important;
}

.dashboard-workspace .lovix-time-node .lovix-time-node-status.is-muted{
  color:var(--lv370-pill-gray-text) !important;
  background:var(--lv370-pill-gray-bg) !important;
  border-color:var(--lv370-pill-gray-border) !important;
}


/* v394 · DELAYED is intentionally warmer/amber than OVERDUE. */
:root{
  --lv394-pill-delayed-text:#A66E43;
  --lv394-pill-delayed-bg:rgba(216,151,103,.12);
  --lv394-pill-delayed-border:rgba(216,151,103,.26);
}
.dashboard-workspace .lovix-time-node .lovix-time-node-status.is-delayed{
  color:var(--lv394-pill-delayed-text) !important;
  background:var(--lv394-pill-delayed-bg) !important;
  border-color:var(--lv394-pill-delayed-border) !important;
}


/* ==== lovix-v371-rail-status-controls.css ==== */
/* Lovix v371 · Rail popover status controls
   Scope: dashboard time-rail popover only.
*/
.dashboard-workspace .lovix-time-pop-status-panel{
  margin-top:12px;
  padding:12px;
  border:1px solid #ECECE6;
  border-radius:18px;
  background:#FAFAF7;
}
.dashboard-workspace .lovix-time-pop-status-head{
  font-size:11px;
  font-weight:700;
  letter-spacing:.02em;
  color:#171717;
}
.dashboard-workspace .lovix-time-pop-status-sub{
  margin-top:4px;
  font-size:10px;
  line-height:1.45;
  color:#8E8E88;
}
.dashboard-workspace .lovix-time-pop-status-grid{
  margin-top:10px;
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.dashboard-workspace .lovix-time-pop-status-chip{
  height:30px;
  padding:0 11px;
  border-radius:999px;
  border:1px solid #E7E7E0;
  background:#FFFFFF;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  font-size:10px;
  line-height:1;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:#7C8078;
  transition:border-color .18s ease, background-color .18s ease, color .18s ease, transform .18s ease;
}
.dashboard-workspace .lovix-time-pop-status-chip:hover{
  transform:translateY(-1px);
}
.dashboard-workspace .lovix-time-pop-status-chip::before{
  content:"";
  width:7px;
  height:7px;
  border-radius:999px;
  background:currentColor;
  opacity:.78;
}
.dashboard-workspace .lovix-time-pop-status-chip.is-done{
  color:#B36B31;
  background:rgba(233,152,80,.12);
  border-color:rgba(233,152,80,.26);
}
.dashboard-workspace .lovix-time-pop-status-chip.is-todo,
.dashboard-workspace .lovix-time-pop-status-chip.is-progress{
  color:#5F7F16;
  background:rgba(166,206,57,.12);
  border-color:rgba(166,206,57,.24);
}
.dashboard-workspace .lovix-time-pop-status-chip.is-overdue,
.dashboard-workspace .lovix-time-pop-status-chip.is-delayed{
  color:#BA5D5D;
  background:rgba(224,114,114,.11);
  border-color:rgba(224,114,114,.22);
}
.dashboard-workspace .lovix-time-pop-status-chip.is-waiting,
.dashboard-workspace .lovix-time-pop-status-chip.is-blocked,
.dashboard-workspace .lovix-time-pop-status-chip.is-cancelled{
  color:#8F948C;
  background:rgba(160,167,158,.10);
  border-color:rgba(160,167,158,.20);
}
.dashboard-workspace .lovix-time-pop-status-chip.is-current{
  box-shadow:0 0 0 2px rgba(207,220,40,.20) inset;
}
.dashboard-workspace .lovix-time-pop-status-foot{
  margin-top:8px;
  font-size:10px;
  line-height:1.45;
  color:#8E8E88;
}
.dashboard-workspace .lovix-time-pop-actions{
  margin-top:12px !important;
}


/* ==== lovix-v372-rail-scroll-white-card.css ==== */
/* Lovix v372 · Rail adaptive horizontal scroll + white card board
   Scope: only dashboard time-rail.
*/

/* Board bottom card must stay pure white, no gradient wash */
.dashboard-workspace .lovix-time-rail-board{
  background:#FFFFFF !important;
  border:1px solid #E6E6E6 !important;
  box-shadow:0 1px 0 rgba(0,0,0,.018) !important;
}
.dashboard-workspace .lovix-time-rail-board::before,
.dashboard-workspace .lovix-time-rail-board::after{
  display:none !important;
  content:none !important;
  background:none !important;
}

/* Default: if tasks are not many, keep a fixed non-scroll layout */
.dashboard-workspace .lovix-time-rail-scroll{
  overflow-x:hidden !important;
  overflow-y:visible !important;
  padding:2px 0 0 !important;
  cursor:default;
}
.dashboard-workspace .lovix-time-rail-grid{
  min-width:0 !important;
  width:100% !important;
  grid-template-columns:repeat(var(--rail-count, 8), minmax(116px, 1fr)) !important;
}

/* When task count exceeds the baseline, enable horizontal drag/scroll */
.dashboard-workspace .lovix-time-rail-scroll.is-scrollable{
  overflow-x:auto !important;
  overscroll-behavior-x:contain;
  -webkit-overflow-scrolling:touch;
  cursor:grab;
  padding-bottom:6px !important;
}
.dashboard-workspace .lovix-time-rail-scroll.is-scrollable.is-dragging{
  cursor:grabbing;
  user-select:none;
}
.dashboard-workspace .lovix-time-rail-scroll.is-scrollable .lovix-time-rail-grid,
.dashboard-workspace .lovix-time-rail-grid.is-scrollable{
  width:max-content !important;
  min-width:var(--lv372-rail-scroll-width, 1280px) !important;
  grid-template-columns:repeat(var(--rail-count, 8), minmax(132px, 1fr)) !important;
}

/* Slightly tighter small-screen behavior while keeping desktop stable */
@media (max-width: 1400px){
  .dashboard-workspace .lovix-time-rail-grid{
    grid-template-columns:repeat(var(--rail-count, 8), minmax(110px, 1fr)) !important;
  }
  .dashboard-workspace .lovix-time-rail-scroll.is-scrollable .lovix-time-rail-grid,
  .dashboard-workspace .lovix-time-rail-grid.is-scrollable{
    grid-template-columns:repeat(var(--rail-count, 8), minmax(128px, 1fr)) !important;
  }
}


/* ==== lovix-v373-rail-warm-yellowgreen-experiment.css ==== */
/* Lovix v373 · Warm yellow-green rail palette experiment
   Scope: ONLY the dashboard timeline axis / nodes / halos.
   Palette direction: pale yellow, yellow, yellow-green, green, deep yellow-green, yellow-orange.
*/
:root{
  --lv373-pale-yellow:#F4F0BE;
  --lv373-soft-yellow:#EADD63;
  --lv373-yellow-green:#CFE45D;
  --lv373-green:#A8C946;
  --lv373-deep-yg:#6F8C31;
  --lv373-deeper-yg:#4F6930;
  --lv373-yellow-orange:#DDA24C;
  --lv373-line-soft:#EEE9B7;
}

/* connecting rail: softer warm yellow-green spectrum, no black-green jump */
.dashboard-workspace .lovix-time-rail-grid::before{
  height:2px !important;
  background:linear-gradient(90deg,
    rgba(244,240,190,.35) 0%,
    rgba(234,221,99,.72) 14%,
    rgba(207,228,93,.80) 36%,
    rgba(168,201,70,.76) 62%,
    rgba(111,140,49,.58) 84%,
    rgba(221,162,76,.34) 100%) !important;
  box-shadow:0 0 12px rgba(207,228,93,.10) !important;
}
.dashboard-workspace .lovix-time-rail-grid::after{
  background:var(--lv373-axis-gradient,
    linear-gradient(90deg,
      var(--lv373-soft-yellow) 0%,
      var(--lv373-yellow-green) 34%,
      var(--lv373-green) 58%,
      var(--lv373-deep-yg) 84%,
      var(--lv373-yellow-orange) 100%)) !important;
  box-shadow:0 0 18px rgba(207,228,93,.14), 0 0 20px rgba(221,162,76,.08) !important;
}

/* nodes: use warm Lovix yellow-green family */
.dashboard-workspace .lovix-time-node.is-complete .lovix-time-node-dot{
  background:var(--lv373-yellow-green) !important;
  border-color:var(--lv373-yellow-green) !important;
  box-shadow:0 0 0 5px rgba(207,228,93,.13), 0 0 22px rgba(207,228,93,.14) !important;
}
.dashboard-workspace .lovix-time-node.is-complete-alt .lovix-time-node-dot{
  background:var(--lv373-green) !important;
  border-color:var(--lv373-green) !important;
  box-shadow:0 0 0 5px rgba(168,201,70,.13), 0 0 22px rgba(168,201,70,.14) !important;
}
.dashboard-workspace .lovix-time-node.is-active .lovix-time-node-dot{
  background:var(--lv373-deep-yg) !important;
  border-color:var(--lv373-deep-yg) !important;
  box-shadow:0 0 0 6px rgba(207,228,93,.13), 0 0 28px rgba(111,140,49,.18) !important;
}
.dashboard-workspace .lovix-time-node.is-pending .lovix-time-node-dot{
  background:#FFFFFF !important;
  border-color:#D6D9B8 !important;
  box-shadow:0 0 0 5px rgba(244,240,190,.11), 0 0 18px rgba(234,221,99,.07) !important;
}

/* halos/ripples: softer yellow-green glow, less murky deep green */
.dashboard-workspace .lovix-time-node.is-complete .lovix-time-node-dot-wrap::before,
.dashboard-workspace .lovix-time-node.is-complete .lovix-time-node-dot-wrap::after,
.dashboard-workspace .lovix-time-node.is-complete .lovix-time-node-dot::before,
.dashboard-workspace .lovix-time-node.is-complete-alt .lovix-time-node-dot-wrap::before,
.dashboard-workspace .lovix-time-node.is-complete-alt .lovix-time-node-dot-wrap::after,
.dashboard-workspace .lovix-time-node.is-complete-alt .lovix-time-node-dot::before,
.dashboard-workspace .lovix-time-node.is-active .lovix-time-node-dot-wrap::before,
.dashboard-workspace .lovix-time-node.is-active .lovix-time-node-dot-wrap::after,
.dashboard-workspace .lovix-time-node.is-active .lovix-time-node-dot::before,
.dashboard-workspace .lovix-time-node.is-pending .lovix-time-node-dot-wrap::before,
.dashboard-workspace .lovix-time-node.is-pending .lovix-time-node-dot-wrap::after,
.dashboard-workspace .lovix-time-node.is-pending .lovix-time-node-dot::before{
  animation-name:lovixRailRippleV373 !important;
}

.dashboard-workspace .lovix-time-node.is-complete .lovix-time-node-dot-wrap::before{
  border-color:rgba(207,228,93,.24) !important;
  background:rgba(234,221,99,.045) !important;
  box-shadow:0 0 18px rgba(207,228,93,.10) !important;
}
.dashboard-workspace .lovix-time-node.is-complete .lovix-time-node-dot-wrap::after{
  border-color:rgba(207,228,93,.15) !important;
  background:rgba(207,228,93,.030) !important;
}
.dashboard-workspace .lovix-time-node.is-complete .lovix-time-node-dot::before{
  background:rgba(244,240,190,.06) !important;
}

.dashboard-workspace .lovix-time-node.is-complete-alt .lovix-time-node-dot-wrap::before{
  border-color:rgba(168,201,70,.23) !important;
  background:rgba(207,228,93,.045) !important;
  box-shadow:0 0 18px rgba(168,201,70,.10) !important;
}
.dashboard-workspace .lovix-time-node.is-complete-alt .lovix-time-node-dot-wrap::after{
  border-color:rgba(168,201,70,.145) !important;
  background:rgba(168,201,70,.028) !important;
}
.dashboard-workspace .lovix-time-node.is-complete-alt .lovix-time-node-dot::before{
  background:rgba(207,228,93,.045) !important;
}

.dashboard-workspace .lovix-time-node.is-active .lovix-time-node-dot-wrap::before{
  border-color:rgba(111,140,49,.25) !important;
  background:rgba(207,228,93,.050) !important;
  box-shadow:0 0 20px rgba(111,140,49,.11) !important;
}
.dashboard-workspace .lovix-time-node.is-active .lovix-time-node-dot-wrap::after{
  border-color:rgba(111,140,49,.16) !important;
  background:rgba(234,221,99,.030) !important;
}
.dashboard-workspace .lovix-time-node.is-active .lovix-time-node-dot::before{
  background:rgba(111,140,49,.045) !important;
}

.dashboard-workspace .lovix-time-node.is-pending .lovix-time-node-dot-wrap::before{
  border-color:rgba(234,221,99,.14) !important;
  background:rgba(244,240,190,.045) !important;
}
.dashboard-workspace .lovix-time-node.is-pending .lovix-time-node-dot-wrap::after{
  border-color:rgba(234,221,99,.08) !important;
  background:rgba(244,240,190,.025) !important;
}
.dashboard-workspace .lovix-time-node.is-pending .lovix-time-node-dot::before{
  background:rgba(244,240,190,.035) !important;
}

/* small top summary dots follow the same warm palette */
.dashboard-workspace .lovix-time-rail-badge-dot.is-green{
  background:var(--lv373-yellow-green) !important;
  box-shadow:0 0 0 4px rgba(207,228,93,.13) !important;
}
.dashboard-workspace .lovix-time-rail-badge-dot.is-orange,
.dashboard-workspace .lovix-time-rail-badge-dot.is-black{
  background:var(--lv373-deep-yg) !important;
  box-shadow:0 0 0 4px rgba(111,140,49,.10) !important;
}
.dashboard-workspace .lovix-time-rail-badge-dot.is-gray{
  background:#D8D9C4 !important;
  box-shadow:0 0 0 4px rgba(244,240,190,.10) !important;
}

@keyframes lovixRailRippleV373{
  0%{opacity:1; transform:translate(-50%,-50%) scale(.58);} 
  62%{opacity:.23; transform:translate(-50%,-50%) scale(1.20);} 
  100%{opacity:0; transform:translate(-50%,-50%) scale(1.62);} 
}


/* ==== lovix-v374-rail-status-node-colors.css ==== */
/* Lovix v374 · Rail node warning-color linkage
   Scope: timeline nodes only.
   When task status tag changes, node color follows the same warning/meaning color.
*/
:root{
  --lv374-node-done:#DDA24C;
  --lv374-node-done-soft:rgba(221,162,76,.14);
  --lv374-node-todo:#A8C946;
  --lv374-node-todo-soft:rgba(168,201,70,.13);
  --lv374-node-progress:#6F8C31;
  --lv374-node-progress-soft:rgba(111,140,49,.16);
  --lv374-node-warning:#D97B72;
  --lv374-node-warning-soft:rgba(217,123,114,.14);
  --lv374-node-muted:#C8CCC0;
  --lv374-node-muted-deep:#92988A;
  --lv374-node-muted-soft:rgba(160,167,158,.12);
}

.dashboard-workspace .lovix-time-node[data-rail-visual-status] .lovix-time-node-dot,
.dashboard-workspace .lovix-time-node[data-rail-visual-status] .lovix-time-node-dot-wrap::before,
.dashboard-workspace .lovix-time-node[data-rail-visual-status] .lovix-time-node-dot-wrap::after,
.dashboard-workspace .lovix-time-node[data-rail-visual-status] .lovix-time-node-dot::before{
  animation-name:lovixRailRippleV374 !important;
}

/* DONE -> same orange meaning as DONE tag */
.dashboard-workspace .lovix-time-node[data-rail-visual-status="done"] .lovix-time-node-dot{
  background:var(--lv374-node-done) !important;
  border-color:var(--lv374-node-done) !important;
  box-shadow:0 0 0 5px var(--lv374-node-done-soft), 0 0 22px rgba(221,162,76,.18) !important;
}
.dashboard-workspace .lovix-time-node[data-rail-visual-status="done"] .lovix-time-node-dot-wrap::before{
  border-color:rgba(221,162,76,.24) !important;
  background:rgba(221,162,76,.05) !important;
  box-shadow:0 0 18px rgba(221,162,76,.12) !important;
}
.dashboard-workspace .lovix-time-node[data-rail-visual-status="done"] .lovix-time-node-dot-wrap::after{
  border-color:rgba(221,162,76,.15) !important;
  background:rgba(221,162,76,.03) !important;
}
.dashboard-workspace .lovix-time-node[data-rail-visual-status="done"] .lovix-time-node-dot::before{
  background:rgba(221,162,76,.05) !important;
}

/* TO DO -> green */
.dashboard-workspace .lovix-time-node[data-rail-visual-status="todo"] .lovix-time-node-dot{
  background:var(--lv374-node-todo) !important;
  border-color:var(--lv374-node-todo) !important;
  box-shadow:0 0 0 5px var(--lv374-node-todo-soft), 0 0 22px rgba(168,201,70,.16) !important;
}
.dashboard-workspace .lovix-time-node[data-rail-visual-status="todo"] .lovix-time-node-dot-wrap::before{
  border-color:rgba(168,201,70,.24) !important;
  background:rgba(168,201,70,.05) !important;
  box-shadow:0 0 18px rgba(168,201,70,.10) !important;
}
.dashboard-workspace .lovix-time-node[data-rail-visual-status="todo"] .lovix-time-node-dot-wrap::after{
  border-color:rgba(168,201,70,.14) !important;
  background:rgba(168,201,70,.03) !important;
}
.dashboard-workspace .lovix-time-node[data-rail-visual-status="todo"] .lovix-time-node-dot::before{
  background:rgba(168,201,70,.05) !important;
}

/* IN PROGRESS -> deeper green */
.dashboard-workspace .lovix-time-node[data-rail-visual-status="in_progress"] .lovix-time-node-dot{
  background:var(--lv374-node-progress) !important;
  border-color:var(--lv374-node-progress) !important;
  box-shadow:0 0 0 6px rgba(168,201,70,.13), 0 0 26px rgba(111,140,49,.18) !important;
}
.dashboard-workspace .lovix-time-node[data-rail-visual-status="in_progress"] .lovix-time-node-dot-wrap::before{
  border-color:rgba(111,140,49,.24) !important;
  background:rgba(168,201,70,.05) !important;
  box-shadow:0 0 18px rgba(111,140,49,.10) !important;
}
.dashboard-workspace .lovix-time-node[data-rail-visual-status="in_progress"] .lovix-time-node-dot-wrap::after{
  border-color:rgba(111,140,49,.16) !important;
  background:rgba(111,140,49,.03) !important;
}
.dashboard-workspace .lovix-time-node[data-rail-visual-status="in_progress"] .lovix-time-node-dot::before{
  background:rgba(111,140,49,.05) !important;
}

/* OVERDUE / DELAYED -> warning red */
.dashboard-workspace .lovix-time-node[data-rail-visual-status="overdue"] .lovix-time-node-dot,
.dashboard-workspace .lovix-time-node[data-rail-visual-status="delayed"] .lovix-time-node-dot{
  background:var(--lv374-node-warning) !important;
  border-color:var(--lv374-node-warning) !important;
  box-shadow:0 0 0 6px var(--lv374-node-warning-soft), 0 0 26px rgba(217,123,114,.20) !important;
}
.dashboard-workspace .lovix-time-node[data-rail-visual-status="overdue"] .lovix-time-node-dot-wrap::before,
.dashboard-workspace .lovix-time-node[data-rail-visual-status="delayed"] .lovix-time-node-dot-wrap::before{
  border-color:rgba(217,123,114,.26) !important;
  background:rgba(217,123,114,.055) !important;
  box-shadow:0 0 18px rgba(217,123,114,.12) !important;
}
.dashboard-workspace .lovix-time-node[data-rail-visual-status="overdue"] .lovix-time-node-dot-wrap::after,
.dashboard-workspace .lovix-time-node[data-rail-visual-status="delayed"] .lovix-time-node-dot-wrap::after{
  border-color:rgba(217,123,114,.16) !important;
  background:rgba(217,123,114,.03) !important;
}
.dashboard-workspace .lovix-time-node[data-rail-visual-status="overdue"] .lovix-time-node-dot::before,
.dashboard-workspace .lovix-time-node[data-rail-visual-status="delayed"] .lovix-time-node-dot::before{
  background:rgba(217,123,114,.05) !important;
}

/* WAITING / BLOCKED / CANCELLED -> muted gray */
.dashboard-workspace .lovix-time-node[data-rail-visual-status="waiting"] .lovix-time-node-dot,
.dashboard-workspace .lovix-time-node[data-rail-visual-status="blocked"] .lovix-time-node-dot,
.dashboard-workspace .lovix-time-node[data-rail-visual-status="cancelled"] .lovix-time-node-dot{
  background:#FFFFFF !important;
  border-color:var(--lv374-node-muted-deep) !important;
  box-shadow:0 0 0 5px var(--lv374-node-muted-soft), 0 0 18px rgba(160,167,158,.10) !important;
}
.dashboard-workspace .lovix-time-node[data-rail-visual-status="waiting"] .lovix-time-node-dot-wrap::before,
.dashboard-workspace .lovix-time-node[data-rail-visual-status="blocked"] .lovix-time-node-dot-wrap::before,
.dashboard-workspace .lovix-time-node[data-rail-visual-status="cancelled"] .lovix-time-node-dot-wrap::before{
  border-color:rgba(160,167,158,.16) !important;
  background:rgba(160,167,158,.04) !important;
}
.dashboard-workspace .lovix-time-node[data-rail-visual-status="waiting"] .lovix-time-node-dot-wrap::after,
.dashboard-workspace .lovix-time-node[data-rail-visual-status="blocked"] .lovix-time-node-dot-wrap::after,
.dashboard-workspace .lovix-time-node[data-rail-visual-status="cancelled"] .lovix-time-node-dot-wrap::after{
  border-color:rgba(160,167,158,.09) !important;
  background:rgba(160,167,158,.022) !important;
}
.dashboard-workspace .lovix-time-node[data-rail-visual-status="waiting"] .lovix-time-node-dot::before,
.dashboard-workspace .lovix-time-node[data-rail-visual-status="blocked"] .lovix-time-node-dot::before,
.dashboard-workspace .lovix-time-node[data-rail-visual-status="cancelled"] .lovix-time-node-dot::before{
  background:rgba(160,167,158,.03) !important;
}

@keyframes lovixRailRippleV374{
  0%{opacity:1; transform:translate(-50%,-50%) scale(.58);} 
  62%{opacity:.23; transform:translate(-50%,-50%) scale(1.20);} 
  100%{opacity:0; transform:translate(-50%,-50%) scale(1.62);} 
}


/* ==== lovix-v394-rail-warning-color-split-experiment.css ==== */
/* Lovix v394 · Experimental rail warning-color split
   Scope: ONLY 今日任务时间线 / Daily Task Rhythm axis line.
   Keeps the dynamic connecting axis gradient, and splits DELAYED from OVERDUE so warning states are readable but not identical. */

.dashboard-workspace .lovix-time-rail-grid{
  --lv394-axis-gradient:linear-gradient(90deg,
    rgba(168,201,70,.28) 0%,
    rgba(168,201,70,.58) 30%,
    rgba(111,140,49,.56) 70%,
    rgba(111,140,49,.28) 100%);
  --lv394-axis-glow-gradient:var(--lv394-axis-gradient);
  --lv394-axis-shadow:0 0 14px rgba(168,201,70,.12);
}

/* Full axis uses current node-status colors. Loaded after v373/v374 so it wins
   over the previous hardcoded warm yellow-green line. */
.dashboard-workspace .lovix-time-rail-grid::before{
  left:3.2% !important;
  right:3.2% !important;
  top:50% !important;
  height:2px !important;
  border-radius:999px !important;
  background:var(--lv394-axis-gradient) !important;
  box-shadow:var(--lv394-axis-shadow) !important;
  transform:translateY(-50%) !important;
  transition:background .24s ease, box-shadow .24s ease !important;
}

/* Soft glow layer follows the same dynamic gradient, but stays subtle. */
.dashboard-workspace .lovix-time-rail-grid::after{
  left:3.2% !important;
  right:3.2% !important;
  top:50% !important;
  height:4px !important;
  min-width:0 !important;
  border-radius:999px !important;
  background:var(--lv394-axis-glow-gradient) !important;
  opacity:.18 !important;
  filter:blur(1.2px) !important;
  box-shadow:none !important;
  transform:translateY(-50%) !important;
  transition:background .24s ease, opacity .24s ease !important;
  pointer-events:none !important;
}

/* If any warning node exists, slightly lift visibility so the red segment is readable. */
.dashboard-workspace .lovix-time-rail-grid[data-lv394-has-warning="true"]::after{
  opacity:.24 !important;
}


/* v394 · delayed and overdue are no longer identical.
   OVERDUE = muted red urgency. DELAYED = warmer amber-salmon delay. */
:root{
  --lv394-delayed:#D89767;
  --lv394-delayed-soft:rgba(216,151,103,.14);
  --lv394-delayed-ring:rgba(216,151,103,.24);
  --lv394-delayed-text:#A66E43;
  --lv394-delayed-bg:rgba(216,151,103,.12);
  --lv394-delayed-border:rgba(216,151,103,.26);
}

.dashboard-workspace .lovix-time-node .lovix-time-node-status.is-delayed{
  color:var(--lv394-delayed-text) !important;
  background:var(--lv394-delayed-bg) !important;
  border-color:var(--lv394-delayed-border) !important;
}

.dashboard-workspace .lovix-time-pop-status-chip.is-delayed{
  color:var(--lv394-delayed-text) !important;
  background:var(--lv394-delayed-bg) !important;
  border-color:var(--lv394-delayed-border) !important;
}

.dashboard-workspace .lovix-time-node[data-rail-visual-status="delayed"] .lovix-time-node-dot{
  background:var(--lv394-delayed) !important;
  border-color:var(--lv394-delayed) !important;
  box-shadow:0 0 0 6px var(--lv394-delayed-soft), 0 0 26px rgba(216,151,103,.18) !important;
}
.dashboard-workspace .lovix-time-node[data-rail-visual-status="delayed"] .lovix-time-node-dot-wrap::before{
  border-color:var(--lv394-delayed-ring) !important;
  background:rgba(216,151,103,.052) !important;
  box-shadow:0 0 18px rgba(216,151,103,.10) !important;
}
.dashboard-workspace .lovix-time-node[data-rail-visual-status="delayed"] .lovix-time-node-dot-wrap::after{
  border-color:rgba(216,151,103,.15) !important;
  background:rgba(216,151,103,.028) !important;
}
.dashboard-workspace .lovix-time-node[data-rail-visual-status="delayed"] .lovix-time-node-dot::before{
  background:rgba(216,151,103,.05) !important;
}


/* ==== lovix-v395-rail-status-clear-palette-experiment.css ==== */
/* Lovix v395 · Experimental clear-status palette
   Scope: ONLY 今日任务时间线 / Daily Task Rhythm status chips, nodes and dynamic axis.
   Goal: visually separate DONE / TO DO / IN PROGRESS / DELAYED / OVERDUE / WAITING with a slightly higher-saturation but still Lovix-clean palette. */

:root{
  /* DONE · completed = burnished copper, distinct from delayed */
  --lv395-done:#C47A35;
  --lv395-done-text:#9C5E27;
  --lv395-done-bg:rgba(196,122,53,.14);
  --lv395-done-border:rgba(196,122,53,.32);
  --lv395-done-soft:rgba(196,122,53,.16);
  --lv395-done-ring:rgba(196,122,53,.30);

  /* TO DO · bright lime */
  --lv395-todo:#A8D92E;
  --lv395-todo-text:#668A12;
  --lv395-todo-bg:rgba(168,217,46,.15);
  --lv395-todo-border:rgba(168,217,46,.36);
  --lv395-todo-soft:rgba(168,217,46,.16);
  --lv395-todo-ring:rgba(168,217,46,.32);

  /* IN PROGRESS · deeper olive green */
  --lv395-progress:#6E8F27;
  --lv395-progress-text:#5B7820;
  --lv395-progress-bg:rgba(110,143,39,.14);
  --lv395-progress-border:rgba(110,143,39,.34);
  --lv395-progress-soft:rgba(110,143,39,.18);
  --lv395-progress-ring:rgba(110,143,39,.32);

  /* DELAYED · honey amber, separated from DONE and OVERDUE */
  --lv395-delayed:#E4B329;
  --lv395-delayed-text:#97710E;
  --lv395-delayed-bg:rgba(228,179,41,.17);
  --lv395-delayed-border:rgba(228,179,41,.42);
  --lv395-delayed-soft:rgba(228,179,41,.18);
  --lv395-delayed-ring:rgba(228,179,41,.34);

  /* OVERDUE · clear coral red */
  --lv395-overdue:#D7606D;
  --lv395-overdue-text:#B34653;
  --lv395-overdue-bg:rgba(215,96,109,.14);
  --lv395-overdue-border:rgba(215,96,109,.34);
  --lv395-overdue-soft:rgba(215,96,109,.17);
  --lv395-overdue-ring:rgba(215,96,109,.34);

  /* WAITING · cool neutral gray */
  --lv395-waiting:#A2AAA2;
  --lv395-waiting-text:#858D86;
  --lv395-waiting-bg:rgba(162,170,162,.13);
  --lv395-waiting-border:rgba(162,170,162,.30);
  --lv395-waiting-soft:rgba(162,170,162,.14);
  --lv395-waiting-ring:rgba(162,170,162,.24);
}

/* Dynamic axis line now uses the v395 gradient variable. */
.dashboard-workspace .lovix-time-rail-grid{
  --lv395-axis-gradient:linear-gradient(90deg,
    rgba(168,217,46,.34) 0%,
    rgba(168,217,46,.66) 34%,
    rgba(110,143,39,.62) 70%,
    rgba(110,143,39,.30) 100%);
  --lv395-axis-glow-gradient:var(--lv395-axis-gradient);
  --lv395-axis-shadow:0 0 14px rgba(168,217,46,.12);
}
.dashboard-workspace .lovix-time-rail-grid::before{
  background:var(--lv395-axis-gradient) !important;
  box-shadow:var(--lv395-axis-shadow) !important;
}
.dashboard-workspace .lovix-time-rail-grid::after{
  background:var(--lv395-axis-glow-gradient) !important;
  opacity:.20 !important;
}
.dashboard-workspace .lovix-time-rail-grid[data-lv395-has-warning="true"]::after{
  opacity:.28 !important;
}

/* Top node status pills: every status has its own visible tone. */
.dashboard-workspace .lovix-time-node[data-rail-visual-status="done"] .lovix-time-node-status,
.dashboard-workspace .lovix-time-node .lovix-time-node-status.is-done{
  color:var(--lv395-done-text) !important;
  background:var(--lv395-done-bg) !important;
  border-color:var(--lv395-done-border) !important;
}
.dashboard-workspace .lovix-time-node[data-rail-visual-status="todo"] .lovix-time-node-status,
.dashboard-workspace .lovix-time-node .lovix-time-node-status.is-todo{
  color:var(--lv395-todo-text) !important;
  background:var(--lv395-todo-bg) !important;
  border-color:var(--lv395-todo-border) !important;
}
.dashboard-workspace .lovix-time-node[data-rail-visual-status="in_progress"] .lovix-time-node-status{
  color:var(--lv395-progress-text) !important;
  background:var(--lv395-progress-bg) !important;
  border-color:var(--lv395-progress-border) !important;
}
.dashboard-workspace .lovix-time-node[data-rail-visual-status="delayed"] .lovix-time-node-status,
.dashboard-workspace .lovix-time-node .lovix-time-node-status.is-delayed{
  color:var(--lv395-delayed-text) !important;
  background:var(--lv395-delayed-bg) !important;
  border-color:var(--lv395-delayed-border) !important;
}
.dashboard-workspace .lovix-time-node[data-rail-visual-status="overdue"] .lovix-time-node-status,
.dashboard-workspace .lovix-time-node .lovix-time-node-status.is-overdue{
  color:var(--lv395-overdue-text) !important;
  background:var(--lv395-overdue-bg) !important;
  border-color:var(--lv395-overdue-border) !important;
}
.dashboard-workspace .lovix-time-node[data-rail-visual-status="waiting"] .lovix-time-node-status,
.dashboard-workspace .lovix-time-node[data-rail-visual-status="blocked"] .lovix-time-node-status,
.dashboard-workspace .lovix-time-node[data-rail-visual-status="cancelled"] .lovix-time-node-status,
.dashboard-workspace .lovix-time-node .lovix-time-node-status.is-muted{
  color:var(--lv395-waiting-text) !important;
  background:var(--lv395-waiting-bg) !important;
  border-color:var(--lv395-waiting-border) !important;
}

/* Popover status buttons: separate palettes for fast visual scanning. */
.dashboard-workspace .lovix-time-pop-status-chip{
  border-width:1px !important;
  transition:border-color .18s ease, background-color .18s ease, color .18s ease, transform .18s ease, box-shadow .18s ease !important;
}
.dashboard-workspace .lovix-time-pop-status-chip.is-done{
  --lv395-current-ring:rgba(196,122,53,.26);
  color:var(--lv395-done-text) !important;
  background:var(--lv395-done-bg) !important;
  border-color:var(--lv395-done-border) !important;
}
.dashboard-workspace .lovix-time-pop-status-chip.is-todo{
  --lv395-current-ring:rgba(168,217,46,.28);
  color:var(--lv395-todo-text) !important;
  background:var(--lv395-todo-bg) !important;
  border-color:var(--lv395-todo-border) !important;
}
.dashboard-workspace .lovix-time-pop-status-chip.is-progress{
  --lv395-current-ring:rgba(110,143,39,.28);
  color:var(--lv395-progress-text) !important;
  background:var(--lv395-progress-bg) !important;
  border-color:var(--lv395-progress-border) !important;
}
.dashboard-workspace .lovix-time-pop-status-chip.is-delayed{
  --lv395-current-ring:rgba(228,179,41,.30);
  color:var(--lv395-delayed-text) !important;
  background:var(--lv395-delayed-bg) !important;
  border-color:var(--lv395-delayed-border) !important;
}
.dashboard-workspace .lovix-time-pop-status-chip.is-overdue{
  --lv395-current-ring:rgba(215,96,109,.30);
  color:var(--lv395-overdue-text) !important;
  background:var(--lv395-overdue-bg) !important;
  border-color:var(--lv395-overdue-border) !important;
}
.dashboard-workspace .lovix-time-pop-status-chip.is-waiting,
.dashboard-workspace .lovix-time-pop-status-chip.is-blocked,
.dashboard-workspace .lovix-time-pop-status-chip.is-cancelled{
  --lv395-current-ring:rgba(162,170,162,.24);
  color:var(--lv395-waiting-text) !important;
  background:var(--lv395-waiting-bg) !important;
  border-color:var(--lv395-waiting-border) !important;
}
.dashboard-workspace .lovix-time-pop-status-chip.is-current{
  box-shadow:0 0 0 2px var(--lv395-current-ring, rgba(207,220,40,.20)) inset, 0 6px 16px rgba(23,23,23,.045) !important;
}

/* Node color system: assign variables per visual status, then apply once. */
.dashboard-workspace .lovix-time-node[data-rail-visual-status="done"]{
  --lv395-node:var(--lv395-done); --lv395-node-soft:var(--lv395-done-soft); --lv395-node-ring:var(--lv395-done-ring); --lv395-node-glow:rgba(196,122,53,.22);
}
.dashboard-workspace .lovix-time-node[data-rail-visual-status="todo"]{
  --lv395-node:var(--lv395-todo); --lv395-node-soft:var(--lv395-todo-soft); --lv395-node-ring:var(--lv395-todo-ring); --lv395-node-glow:rgba(168,217,46,.20);
}
.dashboard-workspace .lovix-time-node[data-rail-visual-status="in_progress"]{
  --lv395-node:var(--lv395-progress); --lv395-node-soft:var(--lv395-progress-soft); --lv395-node-ring:var(--lv395-progress-ring); --lv395-node-glow:rgba(110,143,39,.22);
}
.dashboard-workspace .lovix-time-node[data-rail-visual-status="delayed"]{
  --lv395-node:var(--lv395-delayed); --lv395-node-soft:var(--lv395-delayed-soft); --lv395-node-ring:var(--lv395-delayed-ring); --lv395-node-glow:rgba(228,179,41,.22);
}
.dashboard-workspace .lovix-time-node[data-rail-visual-status="overdue"]{
  --lv395-node:var(--lv395-overdue); --lv395-node-soft:var(--lv395-overdue-soft); --lv395-node-ring:var(--lv395-overdue-ring); --lv395-node-glow:rgba(215,96,109,.24);
}
.dashboard-workspace .lovix-time-node[data-rail-visual-status="waiting"],
.dashboard-workspace .lovix-time-node[data-rail-visual-status="blocked"],
.dashboard-workspace .lovix-time-node[data-rail-visual-status="cancelled"]{
  --lv395-node:var(--lv395-waiting); --lv395-node-soft:var(--lv395-waiting-soft); --lv395-node-ring:var(--lv395-waiting-ring); --lv395-node-glow:rgba(162,170,162,.14);
}
.dashboard-workspace .lovix-time-node[data-rail-visual-status] .lovix-time-node-dot{
  background:var(--lv395-node) !important;
  border-color:var(--lv395-node) !important;
  box-shadow:0 0 0 6px var(--lv395-node-soft), 0 0 26px var(--lv395-node-glow) !important;
}
.dashboard-workspace .lovix-time-node[data-rail-visual-status] .lovix-time-node-dot-wrap::before{
  border-color:var(--lv395-node-ring) !important;
  background:color-mix(in srgb, var(--lv395-node) 7%, transparent) !important;
  box-shadow:0 0 18px var(--lv395-node-glow) !important;
}
.dashboard-workspace .lovix-time-node[data-rail-visual-status] .lovix-time-node-dot-wrap::after{
  border-color:color-mix(in srgb, var(--lv395-node) 18%, transparent) !important;
  background:color-mix(in srgb, var(--lv395-node) 4%, transparent) !important;
}
.dashboard-workspace .lovix-time-node[data-rail-visual-status] .lovix-time-node-dot::before{
  background:color-mix(in srgb, var(--lv395-node) 6%, transparent) !important;
}


/* ==== lovix-v396-rail-status-sync-swap-experiment.css ==== */
/* Lovix v396 · Experimental rail palette swap + node sync fix
   Scope: ONLY 今日任务时间线 / Daily Task Rhythm status buttons, node dots, ripples, pills and axis.
   Goal: swap DONE and DELAYED palettes, keep TO DO as brighter lime, and force node visuals to stay in sync. */

:root{
  --lv396-done:#E4B329;
  --lv396-done-text:#9B740E;
  --lv396-done-bg:rgba(228,179,41,.16);
  --lv396-done-border:rgba(228,179,41,.42);
  --lv396-done-soft:rgba(228,179,41,.18);
  --lv396-done-ring:rgba(228,179,41,.34);

  --lv396-todo:#B2DE34;
  --lv396-todo-text:#6C9114;
  --lv396-todo-bg:rgba(178,222,52,.17);
  --lv396-todo-border:rgba(178,222,52,.38);
  --lv396-todo-soft:rgba(178,222,52,.18);
  --lv396-todo-ring:rgba(178,222,52,.34);

  --lv396-progress:#75932A;
  --lv396-progress-text:#5E771F;
  --lv396-progress-bg:rgba(117,147,42,.15);
  --lv396-progress-border:rgba(117,147,42,.34);
  --lv396-progress-soft:rgba(117,147,42,.18);
  --lv396-progress-ring:rgba(117,147,42,.32);

  --lv396-delayed:#C47A35;
  --lv396-delayed-text:#9C5E27;
  --lv396-delayed-bg:rgba(196,122,53,.14);
  --lv396-delayed-border:rgba(196,122,53,.32);
  --lv396-delayed-soft:rgba(196,122,53,.16);
  --lv396-delayed-ring:rgba(196,122,53,.30);

  --lv396-overdue:#D7606D;
  --lv396-overdue-text:#B34653;
  --lv396-overdue-bg:rgba(215,96,109,.14);
  --lv396-overdue-border:rgba(215,96,109,.34);
  --lv396-overdue-soft:rgba(215,96,109,.17);
  --lv396-overdue-ring:rgba(215,96,109,.34);

  --lv396-waiting:#A2AAA2;
  --lv396-waiting-text:#858D86;
  --lv396-waiting-bg:rgba(162,170,162,.13);
  --lv396-waiting-border:rgba(162,170,162,.30);
  --lv396-waiting-soft:rgba(162,170,162,.14);
  --lv396-waiting-ring:rgba(162,170,162,.24);
}

.dashboard-workspace .lovix-time-node[data-rail-visual-status="done"] .lovix-time-node-status,
.dashboard-workspace .lovix-time-node .lovix-time-node-status.is-done{ color:var(--lv396-done-text)!important; background:var(--lv396-done-bg)!important; border-color:var(--lv396-done-border)!important; }
.dashboard-workspace .lovix-time-node[data-rail-visual-status="todo"] .lovix-time-node-status,
.dashboard-workspace .lovix-time-node .lovix-time-node-status.is-todo{ color:var(--lv396-todo-text)!important; background:var(--lv396-todo-bg)!important; border-color:var(--lv396-todo-border)!important; }
.dashboard-workspace .lovix-time-node[data-rail-visual-status="in_progress"] .lovix-time-node-status,
.dashboard-workspace .lovix-time-node .lovix-time-node-status.is-progress{ color:var(--lv396-progress-text)!important; background:var(--lv396-progress-bg)!important; border-color:var(--lv396-progress-border)!important; }
.dashboard-workspace .lovix-time-node[data-rail-visual-status="delayed"] .lovix-time-node-status,
.dashboard-workspace .lovix-time-node .lovix-time-node-status.is-delayed{ color:var(--lv396-delayed-text)!important; background:var(--lv396-delayed-bg)!important; border-color:var(--lv396-delayed-border)!important; }
.dashboard-workspace .lovix-time-node[data-rail-visual-status="overdue"] .lovix-time-node-status,
.dashboard-workspace .lovix-time-node .lovix-time-node-status.is-overdue{ color:var(--lv396-overdue-text)!important; background:var(--lv396-overdue-bg)!important; border-color:var(--lv396-overdue-border)!important; }
.dashboard-workspace .lovix-time-node[data-rail-visual-status="waiting"] .lovix-time-node-status,
.dashboard-workspace .lovix-time-node[data-rail-visual-status="blocked"] .lovix-time-node-status,
.dashboard-workspace .lovix-time-node[data-rail-visual-status="cancelled"] .lovix-time-node-status,
.dashboard-workspace .lovix-time-node .lovix-time-node-status.is-muted{ color:var(--lv396-waiting-text)!important; background:var(--lv396-waiting-bg)!important; border-color:var(--lv396-waiting-border)!important; }

.dashboard-workspace .lovix-time-pop-status-chip.is-done{ --lv396-current-ring:rgba(228,179,41,.30); color:var(--lv396-done-text)!important; background:var(--lv396-done-bg)!important; border-color:var(--lv396-done-border)!important; }
.dashboard-workspace .lovix-time-pop-status-chip.is-todo{ --lv396-current-ring:rgba(178,222,52,.30); color:var(--lv396-todo-text)!important; background:var(--lv396-todo-bg)!important; border-color:var(--lv396-todo-border)!important; }
.dashboard-workspace .lovix-time-pop-status-chip.is-progress{ --lv396-current-ring:rgba(117,147,42,.28); color:var(--lv396-progress-text)!important; background:var(--lv396-progress-bg)!important; border-color:var(--lv396-progress-border)!important; }
.dashboard-workspace .lovix-time-pop-status-chip.is-delayed{ --lv396-current-ring:rgba(196,122,53,.26); color:var(--lv396-delayed-text)!important; background:var(--lv396-delayed-bg)!important; border-color:var(--lv396-delayed-border)!important; }
.dashboard-workspace .lovix-time-pop-status-chip.is-overdue{ --lv396-current-ring:rgba(215,96,109,.30); color:var(--lv396-overdue-text)!important; background:var(--lv396-overdue-bg)!important; border-color:var(--lv396-overdue-border)!important; }
.dashboard-workspace .lovix-time-pop-status-chip.is-waiting,
.dashboard-workspace .lovix-time-pop-status-chip.is-blocked,
.dashboard-workspace .lovix-time-pop-status-chip.is-cancelled{ --lv396-current-ring:rgba(162,170,162,.24); color:var(--lv396-waiting-text)!important; background:var(--lv396-waiting-bg)!important; border-color:var(--lv396-waiting-border)!important; }
.dashboard-workspace .lovix-time-pop-status-chip.is-current{ box-shadow:0 0 0 2px var(--lv396-current-ring, rgba(207,220,40,.20)) inset, 0 6px 16px rgba(23,23,23,.045)!important; }

.dashboard-workspace .lovix-time-node[data-rail-visual-status="done"]{ --lv396-node:var(--lv396-done); --lv396-node-soft:var(--lv396-done-soft); --lv396-node-ring:var(--lv396-done-ring); --lv396-node-glow:rgba(228,179,41,.22); }
.dashboard-workspace .lovix-time-node[data-rail-visual-status="todo"]{ --lv396-node:var(--lv396-todo); --lv396-node-soft:var(--lv396-todo-soft); --lv396-node-ring:var(--lv396-todo-ring); --lv396-node-glow:rgba(178,222,52,.20); }
.dashboard-workspace .lovix-time-node[data-rail-visual-status="in_progress"]{ --lv396-node:var(--lv396-progress); --lv396-node-soft:var(--lv396-progress-soft); --lv396-node-ring:var(--lv396-progress-ring); --lv396-node-glow:rgba(117,147,42,.22); }
.dashboard-workspace .lovix-time-node[data-rail-visual-status="delayed"]{ --lv396-node:var(--lv396-delayed); --lv396-node-soft:var(--lv396-delayed-soft); --lv396-node-ring:var(--lv396-delayed-ring); --lv396-node-glow:rgba(196,122,53,.22); }
.dashboard-workspace .lovix-time-node[data-rail-visual-status="overdue"]{ --lv396-node:var(--lv396-overdue); --lv396-node-soft:var(--lv396-overdue-soft); --lv396-node-ring:var(--lv396-overdue-ring); --lv396-node-glow:rgba(215,96,109,.24); }
.dashboard-workspace .lovix-time-node[data-rail-visual-status="waiting"],
.dashboard-workspace .lovix-time-node[data-rail-visual-status="blocked"],
.dashboard-workspace .lovix-time-node[data-rail-visual-status="cancelled"]{ --lv396-node:var(--lv396-waiting); --lv396-node-soft:var(--lv396-waiting-soft); --lv396-node-ring:var(--lv396-waiting-ring); --lv396-node-glow:rgba(162,170,162,.14); }
.dashboard-workspace .lovix-time-node[data-rail-visual-status] .lovix-time-node-dot{ background:var(--lv396-node)!important; border-color:var(--lv396-node)!important; box-shadow:0 0 0 6px var(--lv396-node-soft),0 0 26px var(--lv396-node-glow)!important; }
.dashboard-workspace .lovix-time-node[data-rail-visual-status] .lovix-time-node-dot-wrap::before{ border-color:var(--lv396-node-ring)!important; background:color-mix(in srgb, var(--lv396-node) 7%, transparent)!important; box-shadow:0 0 18px var(--lv396-node-glow)!important; }
.dashboard-workspace .lovix-time-node[data-rail-visual-status] .lovix-time-node-dot-wrap::after{ border-color:color-mix(in srgb, var(--lv396-node) 18%, transparent)!important; background:color-mix(in srgb, var(--lv396-node) 4%, transparent)!important; }
.dashboard-workspace .lovix-time-node[data-rail-visual-status] .lovix-time-node-dot::before{ background:color-mix(in srgb, var(--lv396-node) 6%, transparent)!important; }


/* ==== lovix-v397-rail-status-interaction-rewrite.css ==== */
/* Lovix v397 · Rail status interaction root sync
   Scope: ONLY 今日任务时间线 popover status controls.
   Makes the status chips reliably clickable and keeps button / node / pill / axis data synchronized. */

.dashboard-workspace .lovix-time-rail-popover{
  pointer-events:auto !important;
}
.dashboard-workspace .lovix-time-pop-status-panel{
  position:relative !important;
  z-index:5 !important;
  pointer-events:auto !important;
}
.dashboard-workspace .lovix-time-pop-status-chip{
  position:relative !important;
  z-index:6 !important;
  cursor:pointer !important;
  user-select:none !important;
  pointer-events:auto !important;
}
.dashboard-workspace .lovix-time-pop-status-chip:active{
  transform:translateY(0) scale(.985) !important;
}
.dashboard-workspace .lovix-time-pop-status-chip.is-current{
  cursor:default !important;
}
.dashboard-workspace .lovix-time-pop-status-foot{
  color:#858982 !important;
}


/* ==== lovix-v398-rail-node-driven-gradient-rewrite.css ==== */
/* Lovix v398 · Timeline node-driven gradient rewrite
   Scope: ONLY 今日任务时间线 / Daily Task Rhythm axis gradient + status sync visuals.
   The axis now reads each node's real visual status and builds a smooth segmented gradient from actual node positions. */

.dashboard-workspace .lovix-time-rail-grid::before{
  transition:background .34s ease, box-shadow .34s ease, opacity .24s ease !important;
}
.dashboard-workspace .lovix-time-rail-grid::after{
  transition:background .34s ease, opacity .24s ease !important;
}
.dashboard-workspace .lovix-time-node[data-rail-visual-status] .lovix-time-node-dot,
.dashboard-workspace .lovix-time-node[data-rail-visual-status] .lovix-time-node-dot-wrap::before,
.dashboard-workspace .lovix-time-node[data-rail-visual-status] .lovix-time-node-dot-wrap::after{
  transition:background .22s ease, border-color .22s ease, box-shadow .26s ease !important;
}


/* ==== lovix-v399-rail-ultra-soft-gradient-experiment.css ==== */
/* Lovix v399 · Timeline ultra-soft gradient experiment
   Scope: ONLY 今日任务时间线横线渐变过渡。
   Makes color ramps slower and softer after node status changes. */

.dashboard-workspace .lovix-time-rail-grid::before{
  transition:background .56s cubic-bezier(.22,.61,.36,1), box-shadow .50s ease, opacity .26s ease !important;
}
.dashboard-workspace .lovix-time-rail-grid::after{
  transition:background .62s cubic-bezier(.22,.61,.36,1), opacity .32s ease !important;
  opacity:.18 !important;
  filter:blur(.35px);
}
.dashboard-workspace .lovix-time-rail-grid[data-lv399-axis-owner="node-driven-ultra-soft"]::before{
  background:var(--lv395-axis-gradient) !important;
  box-shadow:var(--lv395-axis-shadow) !important;
}
.dashboard-workspace .lovix-time-rail-grid[data-lv399-axis-owner="node-driven-ultra-soft"]::after{
  background:var(--lv395-axis-glow-gradient) !important;
}

/* Lovix v400 · Exact rail vertical alignment fix
   Scope: ONLY move the timeline horizontal rail line down 2px.
   Keeps nodes, cards, text, status colors, gradients, and interactions unchanged. */
.dashboard-workspace .lovix-time-rail-grid::before,
.dashboard-workspace .lovix-time-rail-grid::after{
  top:calc(50% + 2px) !important;
  transform:translateY(-50%) !important;
}



/* ==== lovix-v407-time-rail-targeted-margin-lock.css ==== */
/* Scope: ONLY Daily Task Rhythm timeline horizontal geometry.
   Keep node colors, node status visuals, and node-driven gradient algorithm untouched.
   Requirement: the visible timeline axis area has equal 36px left/right margins. */
.dashboard-workspace .lovix-time-rail-scroll{
  padding-left:0 !important;
  padding-right:0 !important;
  box-sizing:border-box !important;
}
.dashboard-workspace .lovix-time-rail-grid:not(.is-scrollable){
  width:calc(100% - 72px) !important;
  margin-left:36px !important;
  margin-right:36px !important;
  box-sizing:border-box !important;
}
.dashboard-workspace .lovix-time-rail-grid:not(.is-scrollable)::before,
.dashboard-workspace .lovix-time-rail-grid:not(.is-scrollable)::after{
  left:0 !important;
  right:0 !important;
}
.dashboard-workspace .lovix-time-rail-scroll.is-scrollable{
  padding-left:36px !important;
  padding-right:36px !important;
  box-sizing:border-box !important;
}
.dashboard-workspace .lovix-time-rail-scroll.is-scrollable .lovix-time-rail-grid::before,
.dashboard-workspace .lovix-time-rail-scroll.is-scrollable .lovix-time-rail-grid::after,
.dashboard-workspace .lovix-time-rail-grid.is-scrollable::before,
.dashboard-workspace .lovix-time-rail-grid.is-scrollable::after{
  left:0 !important;
  right:0 !important;
}


/* Spark drawer detail-field repair + per-field upload chips */
.lvsp-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:start;}
.lvsp-field{display:grid;gap:8px;min-width:0;}
.lvsp-field.wide{grid-column:1/-1;}
.lvsp-field-head{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:20px;font-size:11px;line-height:14px;color:#888;font-weight:720;}
.lvsp-field-head > span:first-child{min-width:0;}
.lvsp-field-upload{height:28px;padding:0 10px;border-radius:999px;border:1px dashed #D8DFC1;background:#FAFCF1;color:#7B8A43;font-size:11px;font-weight:720;line-height:28px;cursor:pointer;white-space:nowrap;flex:0 0 auto;}
.lvsp-field-upload.has-files{border-style:solid;background:#F2F7DE;color:#667822;}
.lvsp-field-upload:disabled{opacity:.7;cursor:wait;}
.lvsp-drawer .lvsp-field .lvsp-input,
.lvsp-drawer .lvsp-field .lvsp-textarea{width:100%;}
.lvsp-drawer .lvsp-field:not(.wide) .lvsp-field-head{justify-content:flex-start;}
.lvsp-drawer .lvsp-field:not(.wide) .lvsp-field-upload{display:none!important;}
.lvsp-drawer .lvsp-field-head > span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.lvsp-drawer .lvsp-field.wide .lvsp-field-head{justify-content:space-between;}
.lvsp-attach-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px;}
.lvsp-attach-head h3{margin:0;}
.lvsp-attach-block > h3,
.lvsp-similar-block > h3{margin:0 0 10px;}
.lvsp-attach-block,.lvsp-similar-block{display:grid;gap:0;}
@media (max-width: 760px){
  .lvsp-detail-grid{grid-template-columns:1fr;}
  .lvsp-field-head{align-items:flex-start;flex-wrap:wrap;}
}


/* ==== lovix-v409-time-rail-geometry-lock.css ==== */
/* Scope: ONLY Daily Task Rhythm horizontal geometry.
   This leaves node colors, gradients, status logic, halos and interactions untouched. */
.dashboard-workspace .lovix-time-rail-board{
  --lv409-rail-edge:0px;
}
.dashboard-workspace .lovix-time-rail-scroll{
  width:100% !important;
  box-sizing:border-box !important;
  padding-left:0 !important;
  padding-right:0 !important;
}
.dashboard-workspace .lovix-time-rail-grid{
  box-sizing:border-box !important;
  padding-left:0 !important;
  padding-right:0 !important;
}
.dashboard-workspace .lovix-time-rail-grid:not(.is-scrollable){
  width:100% !important;
  min-width:0 !important;
  max-width:100% !important;
  margin-left:0 !important;
  margin-right:0 !important;
  grid-template-columns:repeat(var(--rail-count, 8), minmax(0, 1fr)) !important;
}
.dashboard-workspace .lovix-time-rail-scroll.is-scrollable{
  overflow-x:auto !important;
  overflow-y:visible !important;
  padding-left:var(--lv409-rail-edge) !important;
  padding-right:var(--lv409-rail-edge) !important;
  scroll-padding-left:var(--lv409-rail-edge);
  scroll-padding-right:var(--lv409-rail-edge);
}
.dashboard-workspace .lovix-time-rail-scroll.is-scrollable .lovix-time-rail-grid,
.dashboard-workspace .lovix-time-rail-grid.is-scrollable{
  width:var(--lv372-rail-scroll-width, max-content) !important;
  min-width:var(--lv372-rail-scroll-width, 100%) !important;
  max-width:none !important;
  margin-left:0 !important;
  margin-right:0 !important;
  grid-template-columns:repeat(var(--rail-count, 8), minmax(148px, 1fr)) !important;
}
.dashboard-workspace .lovix-time-rail-grid::before,
.dashboard-workspace .lovix-time-rail-grid::after{
  left:0 !important;
  right:0 !important;
}
@media (max-width: 760px){
  .dashboard-workspace .lovix-time-rail-board{
    --lv409-rail-edge:0px;
  }
}


/* ==== Lovix Spark detail drawer marked layout repair ==== */
/* Scope lock: Spark Pool detail drawer only. Does not touch dashboard, tasks, timeline, sidebar or other pages. */
.lvsp-drawer .lvsp-detail-grid{
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:14px 12px !important;
  align-items:start !important;
}
.lvsp-drawer .lvsp-field{
  min-width:0 !important;
  align-self:start !important;
}
.lvsp-drawer .lvsp-field.wide{
  grid-column:1/-1 !important;
}
.lvsp-drawer .lvsp-field-head{
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:10px !important;
  min-width:0 !important;
  min-height:24px !important;
  line-height:16px !important;
}
.lvsp-drawer .lvsp-field-head > span:first-child{
  min-width:0 !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  white-space:nowrap !important;
}
.lvsp-drawer .lvsp-field-upload{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  flex:0 0 auto !important;
  height:26px !important;
  min-width:52px !important;
  padding:0 10px !important;
  line-height:1 !important;
  box-sizing:border-box !important;
}
.lvsp-drawer .lvsp-field:not(.wide) .lvsp-field-upload{
  display:inline-flex !important;
  height:22px !important;
  min-width:42px !important;
  padding:0 8px !important;
  font-size:10px !important;
}
.lvsp-drawer .lvsp-field .lvsp-input,
.lvsp-drawer .lvsp-field .lvsp-textarea,
.lvsp-drawer .lvsp-field .lvx-select-shell,
.lvsp-drawer .lvsp-field .lvx-select-btn{
  width:100% !important;
  max-width:100% !important;
  box-sizing:border-box !important;
}
.lvsp-drawer .lvsp-field .lvx-select-shell{
  min-width:0 !important;
  display:flex !important;
}
.lvsp-drawer .lvsp-field .lvx-select-value{
  min-width:0 !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  white-space:nowrap !important;
}
.lvsp-drawer .lvsp-attach-head{
  align-items:center !important;
  min-height:34px !important;
}
@media (max-width:760px){
  .lvsp-drawer .lvsp-detail-grid{grid-template-columns:1fr !important;}
  .lvsp-drawer .lvsp-field-head{align-items:center !important;flex-wrap:nowrap !important;}
}


/* ==== Lovix v413 · Spark detail drawer taxonomy + single upload repair ====
   Scope: ONLY Spark Pool fragment detail drawer.
   Fixes legacy CSS hiding #d_type/#d_themes and exposes per-field upload chips on every row.
   Result: Type/Theme controls are visible again; drawer keeps one upload entry in Attachments only. */
.lvsp-drawer .lvsp-detail-grid #d_themes{
  display:block !important;
}
.lvsp-drawer .lvsp-detail-grid .lvsp-field .lvsp-field-head > .lvsp-field-upload,
.lvsp-drawer .lvsp-detail-grid .lvsp-field:not(.wide) .lvsp-field-head > .lvsp-field-upload,
.lvsp-drawer .lvsp-detail-grid .lvsp-field.wide .lvsp-field-head > .lvsp-field-upload{
  display:none !important;
}
.lvsp-drawer .lvsp-detail-grid .lvsp-field-head{
  justify-content:flex-start !important;
}
.lvsp-drawer .lvsp-detail-grid .lvsp-field .lvx-select-shell,
.lvsp-drawer .lvsp-detail-grid .lvsp-field .lvx-select-btn,
.lvsp-drawer .lvsp-detail-grid .lvsp-field .lvsp-input,
.lvsp-drawer .lvsp-detail-grid .lvsp-field .lvsp-textarea{
  width:100% !important;
  max-width:100% !important;
  box-sizing:border-box !important;
}
.lvsp-drawer .lvsp-detail-grid .lvsp-field:not(.wide){
  grid-template-rows:auto auto !important;
}
.lvsp-drawer .lvsp-attach-head [data-drawer-upload-general]{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
}

/* ==== Lovix v414 · Spark Pool toolbar visual restore ====
   Scope lock: ONLY Spark Pool page top search/filter area.
   Reason: raw quick capture + native filters can reappear when the older v324/v342 adapter path does not run.
   Keep: header actions, KPI cards, theme tree, fragment cards, drawers, all other pages untouched. */
.lvsp-v4 .lvsp-page > .lvsp-quick,
.lvsp-v4 .lvsp-quick,
.lvsp-v4 .lvsp-v296-quick,
.lvsp-v4 .lvsp-v297-quick,
.lvsp-v4 .lvsp-v320-quick{
  display:none !important;
  visibility:hidden !important;
  pointer-events:none !important;
  height:0 !important;
  min-height:0 !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  overflow:hidden !important;
}
.lvsp-v4 .lvsp-toolbar .lvsp-filters{
  display:none !important;
  visibility:hidden !important;
  pointer-events:none !important;
  height:0 !important;
  min-height:0 !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  overflow:hidden !important;
}
.lvsp-v4 .lvsp-toolbar{
  padding:16px 20px !important;
  border-radius:30px !important;
  border:1px solid #E6E6E6 !important;
  background:#FFFFFF !important;
  box-shadow:0 14px 34px rgba(0,0,0,.026) !important;
  margin-bottom:18px !important;
}
.lvsp-v4 .lvsp-toolbar .lvsp-searchline{
  display:flex !important;
  align-items:center !important;
  justify-content:flex-end !important;
  gap:10px !important;
  grid-template-columns:none !important;
  margin:0 0 18px 0 !important;
  width:100% !important;
}
.lvsp-v4 .lvsp-toolbar .lvsp-searchline input{
  flex:0 1 590px !important;
  width:590px !important;
  max-width:calc(100% - 150px) !important;
  height:44px !important;
  min-height:44px !important;
  border-radius:22px !important;
  border:1px solid #E6E6E6 !important;
  padding:0 17px !important;
  font-size:13px !important;
  font-weight:500 !important;
  line-height:44px !important;
  color:#2B2B2B !important;
  background:#FFFFFF !important;
  box-shadow:none !important;
}
.lvsp-v4 .lvsp-toolbar .lvsp-searchline input::placeholder{
  color:#A1A5AA !important;
  font-size:13px !important;
  font-weight:500 !important;
}
.lvsp-v4 .lvsp-toolbar .lvsp-searchline .lvsp-btn,
.lvsp-v4 .lvsp-toolbar .lvsp-tabs .lvsp-tab{
  height:38px !important;
  min-height:38px !important;
  border-radius:19px !important;
  border:1px solid #E6E6E6 !important;
  padding:0 16px !important;
  font-size:12.5px !important;
  font-weight:620 !important;
  letter-spacing:0 !important;
  color:#555555 !important;
  background:#FFFFFF !important;
  box-shadow:none !important;
  white-space:nowrap !important;
}
.lvsp-v4 .lvsp-toolbar .lvsp-tabs{
  display:flex !important;
  align-items:center !important;
  flex-wrap:wrap !important;
  gap:8px !important;
  margin:0 !important;
}
.lvsp-v4 .lvsp-toolbar .lvsp-tabs .lvsp-tab.active{
  background:#171717 !important;
  border-color:#171717 !important;
  color:#FFFFFF !important;
  font-weight:720 !important;
}
.lvsp-v4 .lvsp-toolbar .lvsp-searchline .lvsp-btn:hover,
.lvsp-v4 .lvsp-toolbar .lvsp-tabs .lvsp-tab:hover:not(.active){
  border-color:#DDE9B6 !important;
  background:#FBFCF7 !important;
  color:#3D4812 !important;
}
@media (max-width:1180px){
  .lvsp-v4 .lvsp-toolbar .lvsp-searchline{
    justify-content:flex-start !important;
    flex-wrap:wrap !important;
  }
  .lvsp-v4 .lvsp-toolbar .lvsp-searchline input{
    flex:1 1 360px !important;
    width:auto !important;
    max-width:100% !important;
  }
}

/* ==== lovix-v415-spark-toolbar-inline-align.css ====
   Scope lock: Spark Pool toolbar only. Align status tags and search controls on one single row; shorten search box. */
.lvsp-v4 .lvsp-toolbar{
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:24px !important;
  flex-wrap:nowrap !important;
  padding:16px 20px !important;
}
.lvsp-v4 .lvsp-toolbar .lvsp-tabs{
  order:1 !important;
  display:flex !important;
  align-items:center !important;
  flex-wrap:nowrap !important;
  gap:8px !important;
  margin:0 !important;
  flex:0 0 auto !important;
  min-width:0 !important;
}
.lvsp-v4 .lvsp-toolbar .lvsp-tabs .lvsp-tab{
  height:40px !important;
  min-height:40px !important;
  line-height:40px !important;
  border-radius:20px !important;
  padding:0 15px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  flex:0 0 auto !important;
  white-space:nowrap !important;
}
.lvsp-v4 .lvsp-toolbar .lvsp-searchline{
  order:2 !important;
  display:flex !important;
  align-items:center !important;
  justify-content:flex-end !important;
  gap:10px !important;
  grid-template-columns:none !important;
  margin:0 !important;
  width:auto !important;
  max-width:650px !important;
  flex:1 1 520px !important;
  min-width:0 !important;
}
.lvsp-v4 .lvsp-toolbar .lvsp-searchline input{
  flex:1 1 420px !important;
  width:auto !important;
  max-width:480px !important;
  min-width:240px !important;
  height:40px !important;
  min-height:40px !important;
  line-height:40px !important;
  border-radius:20px !important;
  padding:0 16px !important;
}
.lvsp-v4 .lvsp-toolbar .lvsp-searchline .lvsp-btn{
  height:40px !important;
  min-height:40px !important;
  line-height:40px !important;
  border-radius:20px !important;
  padding:0 16px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  flex:0 0 auto !important;
  white-space:nowrap !important;
}
@media (max-width:1180px){
  .lvsp-v4 .lvsp-toolbar{
    flex-wrap:wrap !important;
    gap:12px !important;
  }
  .lvsp-v4 .lvsp-toolbar .lvsp-tabs{
    width:100% !important;
    overflow-x:auto !important;
    scrollbar-width:none !important;
  }
  .lvsp-v4 .lvsp-toolbar .lvsp-tabs::-webkit-scrollbar{display:none !important;}
  .lvsp-v4 .lvsp-toolbar .lvsp-searchline{
    width:100% !important;
    max-width:none !important;
    flex:1 1 100% !important;
  }
  .lvsp-v4 .lvsp-toolbar .lvsp-searchline input{
    max-width:none !important;
  }
}

/* ==== lovix-v415b-spark-toolbar-specificity-lock.css ====
   Higher-specificity override for older body:has toolbar patches. */
body:has(.lvsp-v4) .lvsp-toolbar{
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:24px !important;
  flex-wrap:nowrap !important;
  padding:16px 20px !important;
}
body:has(.lvsp-v4) .lvsp-toolbar .lvsp-tabs{
  order:1 !important;
  display:flex !important;
  align-items:center !important;
  flex-wrap:nowrap !important;
  gap:8px !important;
  margin:0 !important;
  flex:0 0 auto !important;
  min-width:0 !important;
}
body:has(.lvsp-v4) .lvsp-toolbar .lvsp-tabs .lvsp-tab{
  height:40px !important;
  min-height:40px !important;
  line-height:40px !important;
  border-radius:20px !important;
  padding:0 15px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  flex:0 0 auto !important;
  white-space:nowrap !important;
}
body:has(.lvsp-v4) .lvsp-toolbar .lvsp-searchline{
  order:2 !important;
  display:flex !important;
  align-items:center !important;
  justify-content:flex-end !important;
  gap:10px !important;
  grid-template-columns:none !important;
  margin:0 !important;
  width:auto !important;
  max-width:650px !important;
  flex:1 1 520px !important;
  min-width:0 !important;
}
body:has(.lvsp-v4) .lvsp-toolbar .lvsp-searchline input{
  flex:1 1 420px !important;
  width:auto !important;
  max-width:480px !important;
  min-width:240px !important;
  height:40px !important;
  min-height:40px !important;
  line-height:40px !important;
  border-radius:20px !important;
  padding:0 16px !important;
}
body:has(.lvsp-v4) .lvsp-toolbar .lvsp-searchline .lvsp-btn{
  height:40px !important;
  min-height:40px !important;
  line-height:40px !important;
  border-radius:20px !important;
  padding:0 16px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  flex:0 0 auto !important;
  white-space:nowrap !important;
}
@media (max-width:1180px){
  body:has(.lvsp-v4) .lvsp-toolbar{
    flex-wrap:wrap !important;
    gap:12px !important;
  }
  body:has(.lvsp-v4) .lvsp-toolbar .lvsp-tabs{
    width:100% !important;
    overflow-x:auto !important;
    scrollbar-width:none !important;
  }
  body:has(.lvsp-v4) .lvsp-toolbar .lvsp-tabs::-webkit-scrollbar{display:none !important;}
  body:has(.lvsp-v4) .lvsp-toolbar .lvsp-searchline{
    width:100% !important;
    max-width:none !important;
    flex:1 1 100% !important;
  }
  body:has(.lvsp-v4) .lvsp-toolbar .lvsp-searchline input{
    max-width:none !important;
  }
}

/* ==== lovix-v416-spark-toolbar-chip-weight-spacing.css ====
   Scope lock: Spark Pool toolbar only. User screenshot: non-active tags must not be bold; only the black active chip stays bold. Reduce toolbar top/bottom edge spacing by 2px while keeping tags/search aligned in one row. */
.lvsp-v4 .lvsp-toolbar,
body:has(.lvsp-v4) .lvsp-toolbar{
  padding:14px 20px !important;
}
.lvsp-v4 .lvsp-toolbar .lvsp-tabs .lvsp-tab:not(.active),
body:has(.lvsp-v4) .lvsp-toolbar .lvsp-tabs .lvsp-tab:not(.active){
  font-weight:500 !important;
}
.lvsp-v4 .lvsp-toolbar .lvsp-tabs .lvsp-tab.active,
body:has(.lvsp-v4) .lvsp-toolbar .lvsp-tabs .lvsp-tab.active{
  font-weight:720 !important;
}
.lvsp-v4 .lvsp-toolbar .lvsp-tabs .lvsp-tab,
body:has(.lvsp-v4) .lvsp-toolbar .lvsp-tabs .lvsp-tab{
  letter-spacing:0 !important;
  -webkit-font-smoothing:antialiased;
  text-rendering:geometricPrecision;
}

/* ==== lovix-v417-spark-toolbar-chip-vertical-tighten.css ====
   Scope lock: Spark Pool toolbar tabs only. User requested the highlighted chip text area to tighten vertically by 2px on top and 2px on bottom. Keep one-row alignment and do not change other pages. */
.lvsp-v4 .lvsp-toolbar .lvsp-tabs .lvsp-tab,
body:has(.lvsp-v4) .lvsp-toolbar .lvsp-tabs .lvsp-tab{
  height:36px !important;
  min-height:36px !important;
  line-height:36px !important;
  border-radius:18px !important;
}

/* ==== lovix-v418-spark-theme-tree-draft-box.css ====
   Scope lock: Spark Pool ThemeTree only.
   Add a Draft Box above the first type group; collect all fragments without a newly assigned theme here.
   Draft Box has no secondary theme level. */
.lvsp-v4 .lvsp-theme-tree-card .lvsp-tree-group-draft,
body:has(.lvsp-v4) .lvsp-theme-tree-card .lvsp-tree-group-draft{
  padding-top:0 !important;
}
.lvsp-v4 .lvsp-theme-tree-card .lvsp-tree-draft,
body:has(.lvsp-v4) .lvsp-theme-tree-card .lvsp-tree-draft{
  background:#FBFBFA !important;
  border-style:dashed !important;
}
.lvsp-v4 .lvsp-theme-tree-card .lvsp-tree-draft strong,
body:has(.lvsp-v4) .lvsp-theme-tree-card .lvsp-tree-draft strong{
  color:#4F4F4F !important;
}
.lvsp-v4 .lvsp-theme-tree-card .lvsp-tree-draft.active,
body:has(.lvsp-v4) .lvsp-theme-tree-card .lvsp-tree-draft.active{
  background:#171717 !important;
  border-color:#171717 !important;
}
.lvsp-v4 .lvsp-theme-tree-card .lvsp-tree-draft.active strong,
body:has(.lvsp-v4) .lvsp-theme-tree-card .lvsp-tree-draft.active strong,
.lvsp-v4 .lvsp-theme-tree-card .lvsp-tree-draft.active em,
body:has(.lvsp-v4) .lvsp-theme-tree-card .lvsp-tree-draft.active em{
  color:#FFFFFF !important;
}

/* ==== lovix-v419-spark-taxonomy-manager-357-merge.css ====
   Scope lock: Spark Pool taxonomy manager only. Integrated v357 manager interaction into v418 final. */
.lvsp-v324-type-card.is-system-draft .lvsp-v324-theme-list-admin{
  display:none !important;
}
.lvsp-v324-type-card.is-system-draft .lvsp-v324-manager-actions button[disabled]{
  color:#999 !important;
  background:#FAFAFA !important;
  cursor:default !important;
}
.lvsp-v324-manager [data-v324-parent-select].lvsp-input{
  width:100%;
  height:42px;
  border:1px solid #E7E7E7;
  border-radius:16px;
  padding:0 14px;
  font-size:13px;
  background:#fff;
  box-sizing:border-box;
  outline:none;
}


/* ==== lovix-v420-spark-interaction-safe-fix.css ====
   Scope lock: Spark Pool only. Keep card collapse/detail edit/search/theme tree/manager intact;
   restore native-click reliability for Spark selects and replace fragile datalist clicks with a small suggestion picker. */
.lvsp-v4 select.lvx-native-select-hidden,
.lvsp-modal select.lvx-native-select-hidden,
.lvsp-drawer select.lvx-native-select-hidden,
.lvsp-v324-manager select.lvx-native-select-hidden{
  position:static !important;
  opacity:1 !important;
  pointer-events:auto !important;
  width:auto !important;
  height:auto !important;
  min-width:0 !important;
  min-height:0 !important;
  margin:0 !important;
  padding:0 40px 0 14px !important;
  border:1px solid #E7E7E7 !important;
  clip:auto !important;
  clip-path:none !important;
}
.lvsp-v4 select,
.lvsp-modal select,
.lvsp-drawer select,
.lvsp-v324-manager select{
  -webkit-appearance:none !important;
  appearance:none !important;
  cursor:pointer !important;
  pointer-events:auto !important;
  background-color:#FFFFFF !important;
  background-image:linear-gradient(45deg, transparent 50%, #5E5E5E 50%), linear-gradient(135deg, #5E5E5E 50%, transparent 50%) !important;
  background-position:calc(100% - 20px) 50%, calc(100% - 15px) 50% !important;
  background-size:5px 5px,5px 5px !important;
  background-repeat:no-repeat !important;
  padding-right:40px !important;
}
.lvsp-v4 .lvx-select-shell,
.lvsp-modal .lvx-select-shell,
.lvsp-drawer .lvx-select-shell,
.lvsp-v324-manager .lvx-select-shell{
  display:none !important;
  pointer-events:none !important;
}
.lvsp-theme-pickover{
  position:fixed;
  z-index:2147483500;
  display:flex;
  flex-direction:column;
  gap:4px;
  padding:7px;
  border:1px solid #E7E7E7;
  border-radius:18px;
  background:#FFFFFF;
  box-shadow:0 18px 48px rgba(0,0,0,.12);
  max-height:292px;
  overflow:auto;
  box-sizing:border-box;
  scrollbar-width:none;
}
.lvsp-theme-pickover::-webkit-scrollbar{display:none;}
.lvsp-theme-pickover button{
  width:100%;
  min-height:34px;
  border:0;
  border-radius:12px;
  background:transparent;
  color:#606060;
  padding:8px 10px;
  text-align:left;
  font-size:12px;
  line-height:16px;
  font-weight:560;
  cursor:pointer;
}
.lvsp-theme-pickover button:hover{
  background:#FBFCF7;
  color:#3D4812;
}
