/* Jobarivo lifecycle module: job manager, analytics, connects balance. */
.jbc-lc {
	--lc-ink: #17132E; --lc-violet: #5B3DF5; --lc-violet-d: #3F27C9; --lc-violet-t: #EFEBFF;
	--lc-coral: #FF6B57; --lc-mint: #12B27A; --lc-amber: #F5A524; --lc-paper: #F6F5FB; --lc-line: #E6E3F1;
	color: var(--lc-ink);
	max-width: 100%;
	box-sizing: border-box;
}
.jbc-lc *, .jbc-lc *::before, .jbc-lc *::after { box-sizing: border-box; }
.jbc-lc a:focus-visible, .jbc-lc button:focus-visible, .jbc-lc summary:focus-visible { outline: 3px solid var(--lc-violet); outline-offset: 2px; }
.jbc-lc .btn { min-height: 44px; display: inline-flex; align-items: center; justify-content: center; }

.jbc-lc-note { margin: 0 0 1rem; padding: .8rem 1rem; border-radius: 10px; border: 1px solid var(--lc-line); background: var(--lc-paper); }
.jbc-lc-note--ok { border-color: #bdeed8; background: #ecfaf4; }
.jbc-lc-note--err { border-color: #ffd0c9; background: #fff2ef; }
.jbc-lc-empty { padding: 1.5rem; border: 1px dashed var(--lc-line); border-radius: 16px; background: var(--lc-paper); display: flex; flex-wrap: wrap; gap: .75rem 1rem; align-items: center; margin: 0; }

/* Manager */
.jbc-mj-top { display: flex; flex-wrap: wrap; gap: .75rem 1.25rem; align-items: center; justify-content: space-between; margin-bottom: 1rem; }
.jbc-mj-filters { list-style: none; display: flex; flex-wrap: wrap; gap: .4rem; margin: 0; padding: 0; }
.jbc-mj-filters a, .jbc-an-range a, .jbc-mj-pages a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 1rem; border-radius: 999px; border: 1px solid var(--lc-line); color: var(--lc-ink); text-decoration: none; background: #fff; }
.jbc-mj-filters a.is-on, .jbc-an-range a.is-on, .jbc-mj-pages a.is-on { background: var(--lc-violet); border-color: var(--lc-violet); color: #fff; }
.jbc-mj-wallet { display: flex; flex-wrap: wrap; gap: .5rem .9rem; align-items: center; font-size: .92rem; }
.jbc-mj-wallet span { padding: .3rem .7rem; border-radius: 999px; background: var(--lc-violet-t); color: var(--lc-violet-d); font-weight: 600; }
.jbc-mj-confirm { margin: 0 0 1rem; padding: 1rem; border: 1px solid #ffd0c9; border-radius: 16px; background: #fff2ef; }
.jbc-mj-confirm p { margin: 0 0 .75rem; }
.jbc-mj-list { list-style: none; margin: 0; padding: 0; display: grid; gap: .9rem; }
.jbc-mj-item { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1.2fr); gap: .8rem 1.25rem; padding: 1.1rem 1.25rem; border: 1px solid var(--lc-line); border-radius: 16px; background: #fff; }
.jbc-mj-main h3 { margin: 0 0 .4rem; font-size: 1.08rem; line-height: 1.3; overflow-wrap: anywhere; }
.jbc-mj-main h3 a { color: inherit; text-decoration: none; }
.jbc-mj-main h3 a:hover { text-decoration: underline; }
.jbc-mj-badges { margin: 0; display: flex; flex-wrap: wrap; gap: .4rem; }
.jbc-badge { display: inline-block; padding: .2rem .65rem; border-radius: 999px; font-size: .8rem; font-weight: 600; background: var(--lc-paper); border: 1px solid var(--lc-line); }
.jbc-badge--publish { background: #ecfaf4; border-color: #bdeed8; color: #0b7a54; }
.jbc-badge--draft { background: #fff7e6; border-color: #fbe2ad; color: #8a5a00; }
.jbc-badge--expired { background: #fff2ef; border-color: #ffd0c9; color: #b3341f; }
.jbc-badge--feat { background: var(--lc-violet-t); border-color: #d9d1ff; color: var(--lc-violet-d); }
.jbc-mj-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .5rem; margin: 0; }
.jbc-mj-stats div { background: var(--lc-paper); border-radius: 10px; padding: .55rem .7rem; min-width: 0; }
.jbc-mj-stats dt { font-size: .75rem; opacity: .75; }
.jbc-mj-stats dd { margin: 0; font-weight: 700; overflow-wrap: anywhere; }
.jbc-mj-actions { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: .45rem; padding-top: .8rem; border-top: 1px solid var(--lc-line); margin: 0; }
.jbc-danger { color: #b3341f !important; }
.jbc-mj-pages { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: 1rem; }

/* Analytics */
.jbc-an-range { display: flex; flex-wrap: wrap; gap: .4rem; margin-bottom: 1rem; }
.jbc-an-tiles { list-style: none; margin: 0 0 1.25rem; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: .75rem; }
.jbc-an-tiles li { padding: 1rem 1.1rem; border: 1px solid var(--lc-line); border-radius: 16px; background: #fff; }
.jbc-an-tiles span { display: block; font-size: .85rem; opacity: .75; }
.jbc-an-tiles strong { font-size: 1.7rem; line-height: 1.2; }
.jbc-an-charts { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); gap: 1rem; margin-bottom: 1.5rem; }
.jbc-ch { margin: 0; padding: 1rem; border: 1px solid var(--lc-line); border-radius: 16px; background: #fff; min-width: 0; }
.jbc-ch svg { width: 100%; height: auto; display: block; overflow: visible; }
.jbc-ch figcaption { font-weight: 600; margin-top: .5rem; }
.jbc-ch-grid { stroke: var(--lc-line); stroke-width: 1; }
.jbc-ch-tick { fill: #5d5878; font-size: 11px; }
.jbc-ch-line { fill: none; stroke: var(--lc-violet); stroke-width: 2.5; stroke-linejoin: round; stroke-linecap: round; }
.jbc-ch-area { fill: var(--lc-violet); opacity: .1; }
.jbc-ch-dot { fill: #fff; stroke: var(--lc-violet); stroke-width: 2; }
.jbc-ch-bar { fill: var(--lc-mint); }
.jbc-ch-data { margin-top: .5rem; }
.jbc-ch-data summary { cursor: pointer; min-height: 44px; display: flex; align-items: center; color: var(--lc-violet-d); font-weight: 600; }
.jbc-an-h { margin: 0 0 .75rem; }
.jbc-tablewrap { max-width: 100%; overflow-x: auto; }
.jbc-lc table { width: 100%; border-collapse: collapse; font-size: .95rem; }
.jbc-lc th, .jbc-lc td { text-align: left; padding: .65rem .75rem; border-bottom: 1px solid var(--lc-line); }
.jbc-lc thead th { font-size: .8rem; text-transform: uppercase; letter-spacing: .04em; opacity: .75; }
.jbc-an-note { font-size: .85rem; opacity: .75; margin: .75rem 0 0; }

/* Connects balance */
.jbc-conn { display: flex; flex-wrap: wrap; gap: .5rem 1.25rem; align-items: center; padding: 1rem 1.25rem; margin: 0 0 1.25rem; border: 1px solid var(--lc-line); border-radius: 16px; background: var(--lc-violet-t); }
.jbc-conn span { display: block; font-size: .85rem; opacity: .8; }
.jbc-conn strong { font-size: 1.8rem; line-height: 1.1; color: var(--lc-violet-d); }
.jbc-conn p { margin: 0; flex: 1 1 200px; }

@media (max-width: 720px) {
	.jbc-mj-item { grid-template-columns: minmax(0, 1fr); padding: 1rem; }
	.jbc-mj-actions .btn { flex: 1 1 calc(50% - .45rem); }
	table.jbc-stack thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
	table.jbc-stack, table.jbc-stack tbody, table.jbc-stack tr, table.jbc-stack th, table.jbc-stack td { display: block; width: 100%; }
	table.jbc-stack tr { margin-bottom: .75rem; border: 1px solid var(--lc-line); border-radius: 12px; padding: .4rem .2rem; background: #fff; }
	table.jbc-stack th[scope="row"] { font-size: 1rem; border-bottom: 0; }
	table.jbc-stack td { display: flex; justify-content: space-between; gap: 1rem; border-bottom: 0; padding-top: .3rem; padding-bottom: .3rem; }
	table.jbc-stack td::before { content: attr(data-label); opacity: .7; }
}
@media (prefers-reduced-motion: reduce) {
	.jbc-lc * { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}
