:root{
	--font-sans:"Inter","Avenir Next","SF Pro Text","Segoe UI",system-ui,-apple-system,BlinkMacSystemFont,sans-serif;
	--font-display:"Inter","Avenir Next","SF Pro Text","Segoe UI",system-ui,-apple-system,sans-serif;
	/* ── Keepline brand tokens ── */
	--ink-900:#16212C;   /* primary dark — chrome, headings, primary buttons, generic-positive/success text */
	--keep:#17786A;      /* money-kept ONLY (take-home / "keep" figures) */
	--keep-dark:#2AA38F; /* money-kept on dark surfaces */
	--deduction:#B9C1C8; /* gray — deductions / neutral bars */
	--bg:#f5f6f7;
	--bg-0:#f7f8f9;
	--bg-1:#eef1f3;
	--bg-strong:#e4e8ea;
	--surface:#ffffff;
	--surface-2:#f5f6f8;
	--surface-3:#eef1f3;
	--card:#ffffff;
	--ink:#16212C;
	--ink-soft:#3a4652;
	--muted:#6a7480;
	--line:rgba(22,33,44,.12);
	--line-strong:rgba(22,33,44,.22);
	--indigo:#16212C;
	--indigo-deep:#16212C;
	--violet:#16212C;
	--teal:#17786A;
	--teal-deep:#17786A;
	--sky:#3a4652;
	--amber:#f59e0b;
	--accent:#16212C;
	--accent-2:#16212C;
	--accent-soft:#eef1f3;
	--danger:#dc2626;
	--shadow:0 18px 42px rgba(22,33,44,.10);
	--shadow-soft:0 8px 22px rgba(22,33,44,.07);
	--ring:0 0 0 3px rgba(22,33,44,.16);
	--radius-lg:16px;
	--radius-md:12px;
	--radius-sm:10px;
}

/* Tabler icon base */
.ti{font-size:1.05em;vertical-align:-0.15em;line-height:1;display:inline-block}

*{box-sizing:border-box;margin:0;padding:0}

html{background:var(--bg)}

body{
	font-family:var(--font-sans);
	font-size:15.5px;
	color:var(--ink);
	background:var(--bg);
	background-attachment:fixed;
	min-height:100vh;
	line-height:1.52;
	-webkit-font-smoothing:antialiased;
}

body::before{
	content:"";
	position:fixed;
	inset:0;
	pointer-events:none;
	background-image:none;
}

.header{
	position:sticky;
	top:0;
	z-index:50;
	display:flex;
	align-items:center;
	gap:13px;
	padding:9px 22px;
	color:#f7f5ef;
	background:var(--ink-900);
	border-bottom:1px solid rgba(255,255,255,.08);
	box-shadow:0 6px 18px rgba(22,33,44,.16);
}

.header h1{
	font-family:var(--font-display);
	font-size:25px;
	line-height:1.05;
	font-weight:500;
	letter-spacing:-.02em;
	margin-bottom:1px;
}

.header span{
	font-size:11px;
	color:rgba(245,243,238,.72);
}

.header > div:first-child{
	max-width:460px;
	padding-right:12px;
}

.header > div:last-child{
	flex:1;
	justify-content:flex-end;
	row-gap:5px !important;
	column-gap:6px !important;
}

.header button,
.header select,
.header label,
.header #modeBadge,
.header #logoutBtn{
	border-radius:7px !important;
	border:1px solid rgba(255,255,255,.16) !important;
	background:rgba(255,255,255,.08) !important;
	color:#f7f5ef !important;
	box-shadow:none !important;
	font-size:11px !important;
}

.header button:hover,
.header select:hover,
.header label:hover{
	background:rgba(255,255,255,.14) !important;
	border-color:rgba(255,255,255,.28) !important;
}

.header select{
	min-height:28px;
	padding-inline:10px !important;
}

.header button,
.header label{
	min-height:28px;
	padding-inline:10px !important;
	display:inline-flex;
	align-items:center;
}

.header div[style*="background:#0f2e23"]{
	background:rgba(255,255,255,.06) !important;
	border:1px solid rgba(255,255,255,.14) !important;
	border-radius:10px !important;
	padding:6px !important;
}

.header div[style*="background:#0f2e23"] button,
.header div[style*="background:#0f2e23"] label{
	background:transparent !important;
}

.main{
	max-width:1360px;
	margin:0 auto;
	padding:28px 18px 42px;
}

.side-nav{
	position:fixed;
	left:6px;
	top:var(--side-nav-top, 104px);
	bottom:14px;
	width:16px;
	padding:0;
	overflow:hidden;
	border:0;
	border-radius:999px;
	background:transparent;
	box-shadow:none;
	backdrop-filter:none;
	transform:none;
	transition:width .22s ease, transform .22s ease, opacity .18s ease;
	z-index:42;
	opacity:.92;
}

.side-nav:hover,
body.side-nav-pinned .side-nav{
	width:254px;
	padding:10px 8px;
	border:1px solid rgba(210,214,244,.78);
	border-radius:20px;
	background:rgba(255,255,255,.9);
	box-shadow:var(--shadow-soft);
	backdrop-filter:blur(12px);
	opacity:1;
}

body:not(.side-nav-pinned) .side-nav:not(:hover) > *{
	opacity:0;
	pointer-events:none;
}

.side-nav::before{
	content:"";
	position:absolute;
	left:2px;
	top:8px;
	transform:none;
	width:10px;
	height:104px;
	border-radius:999px;
	background:var(--ink-900);
	box-shadow:0 4px 14px rgba(22,33,44,.24);
}

.side-nav::after{
	content:"";
	position:absolute;
	right:0;
	top:18px;
	bottom:18px;
	width:4px;
	border-radius:999px;
	background:var(--ink-900);
	opacity:0;
}

.side-nav:hover::after,
body.side-nav-pinned .side-nav::after{
	opacity:.9;
}

.side-pin-btn{
	width:100%;
	border:none;
	background:transparent;
	font-size:14px;
	cursor:pointer;
	padding:6px 0 10px;
	color:#64748b;
	opacity:0;
	pointer-events:none;
}

.side-nav:hover .side-pin-btn,
body.side-nav-pinned .side-pin-btn{
	opacity:1;
	pointer-events:auto;
}

.side-group{ margin-bottom:10px; }

.side-group-btn{
	width:100%;
	border:none;
	background:transparent;
	text-align:left;
	display:flex;
	align-items:center;
	gap:8px;
	padding:8px;
	border-radius:10px;
	cursor:pointer;
	font-weight:700;
	color:#334155;
}

.side-group-btn:hover{ background:rgba(22,33,44,.07); }

.side-icon{
	width:20px;
	text-align:center;
	flex:0 0 20px;
}

.side-label{
	opacity:0;
	white-space:nowrap;
	transition:opacity .15s ease;
}

.side-nav:hover .side-label,
body.side-nav-pinned .side-label{ opacity:1; }

.side-subtabs{ display:none; padding:2px 0 0 28px; }

.side-nav:hover .side-subtabs,
body.side-nav-pinned .side-subtabs{ display:block; }

.side-subtab{
	display:block;
	width:100%;
	border:none;
	background:transparent;
	text-align:left;
	padding:7px 8px;
	border-radius:8px;
	font-size:12.5px;
	color:#475569;
	cursor:pointer;
	margin-bottom:2px;
}

.side-subtab:hover{ background:rgba(22,33,44,.07); color:var(--ink-900); }
.side-subtab.on{ background:var(--ink-900); color:#fff; }

@media (min-width:1100px){
	.main{ padding-left:18px; transition:padding-left .22s ease; }
	body.side-nav-pinned .main{ padding-left:270px; }
}

@media (max-width:1099px){
	.side-nav{ display:none; }
	.main{ padding-left:18px; }
}

.tabs{
	display:flex;
	flex-wrap:wrap;
	gap:8px;
	width:100%;
	margin:0 0 24px;
	padding:12px;
	border:1px solid var(--line);
	border-radius:12px;
	background:var(--surface);
	box-shadow:var(--shadow-soft);
}

.tab{
	padding:10px 17px;
	border:none;
	background:transparent;
	font-size:14px;
	color:#5b6470;
	cursor:pointer;
	border-radius:8px;
	font-weight:600;
	letter-spacing:.01em;
	transition:all .18s ease;
}

.tab:hover{
	background:rgba(22,33,44,.06);
	color:var(--ink-900);
}

.tab.on{
	background:var(--ink-900);
	color:#ffffff;
	box-shadow:none;
}

.panel{display:none}
.panel.on{display:block}

.card,
.stat,
.pts-card,
.tbl-wrap,
.drop,
.dbg{
	background:#ffffff;
	border:1px solid var(--line);
	box-shadow:var(--shadow-soft);
}

.card{
	border-radius:var(--radius-lg);
	padding:20px;
	margin-bottom:16px;
	transition:box-shadow .15s ease, border-color .15s ease;
}

.card-title{
	font-size:13px;
	font-weight:700;
	color:var(--ink-900);
	margin-bottom:12px;
	text-transform:uppercase;
	letter-spacing:.14em;
}

.chip-list{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px;min-height:28px}

.chip{
	display:inline-flex;
	align-items:center;
	gap:6px;
	font-size:13px;
	padding:8px 13px;
	border-radius:8px;
	background:var(--surface-2);
	border:1px solid var(--line);
	color:#3a4652;
}

.chip button{border:none;background:none;cursor:pointer;font-size:14px;color:#8f948d;padding:0;line-height:1;margin-left:2px}
.chip button:hover{color:#374151}

.row-in{display:flex;gap:8px;flex-wrap:wrap;align-items:center}

input[type=text],
input[type=date],
input[type=number],
textarea,
select.ctrl,
select.sm,
select,
input:not([type]),
button.btn{
	font-family:var(--font-sans);
}

input[type=text],
input[type=date],
input[type=number],
textarea,
select.ctrl,
select.sm,
select,
input:not([type]){
	font-size:14px;
	padding:10px 12px;
	border-radius:12px;
	border:1px solid var(--line);
	background:var(--surface);
	color:var(--ink);
	outline:none;
	transition:border-color .15s ease, box-shadow .15s ease, background .15s ease;
}

input[type=text]:focus,
input[type=date]:focus,
input[type=number]:focus,
textarea:focus,
select.ctrl:focus,
select.sm:focus,
select:focus,
input:not([type]):focus{
	border-color:var(--ink-900);
	box-shadow:var(--ring);
	background:#fff;
}

input.w70{width:70px}
input.w160{width:160px}

button.btn{
	font-size:14px;
	padding:10px 15px;
	border-radius:8px;
	border:1px solid var(--line);
	background:var(--surface);
	cursor:pointer;
	color:#3a4652;
	font-weight:600;
	transition:all .16s ease;
}

button.btn:hover{
	background:var(--surface-2);
	border-color:var(--line-strong);
	transform:translateY(-1px);
}

button.btn-primary{
	background:var(--ink-900);
	color:#ffffff;
	border-color:transparent;
	box-shadow:none;
}

button.btn-primary:hover{background:var(--ink-900);filter:brightness(1.12)}

.drop{
	border:1.5px dashed var(--line-strong);
	border-radius:var(--radius-lg);
	padding:38px 26px;
	text-align:center;
	cursor:pointer;
	margin-bottom:16px;
	transition:all .15s ease;
	background:var(--surface-2);
}

.drop:hover,
.drop.over{
	border-color:var(--ink-900);
	background:var(--surface-3);
}

.drop-title{font-size:16px;color:#2a2850;font-weight:700;margin-bottom:7px}
.drop-sub{font-size:12px;color:#6a688c}

.actions{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:16px}

.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:16px}
.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:16px}

.stat{
	border-radius:20px;
	padding:16px 18px;
}

.stat-lbl{font-size:11px;color:var(--muted);margin-bottom:7px;font-weight:700;text-transform:uppercase;letter-spacing:.11em}
.stat-val{font-size:29px;font-weight:600;color:var(--ink-900);letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.stat-sub{font-size:13px;color:var(--muted);margin-top:5px}

.pts-card{border-radius:18px;padding:16px}
.pts-card-title{font-size:14px;font-weight:700;margin-bottom:10px;color:#374151}
.pts-row{display:flex;justify-content:space-between;font-size:14px;color:#6b7280;margin-bottom:6px;align-items:center}
.pts-row span:last-child{font-weight:700;color:var(--ink-900)}
.divider{height:1px;background:var(--deduction);opacity:.6;margin:12px 0;border:0}

.tbl-wrap{
	overflow-x:auto;
	border-radius:20px;
	border:1px solid var(--line);
}

table{width:100%;border-collapse:collapse;font-size:14px;font-variant-numeric:tabular-nums}

th{
	text-align:left;
	font-weight:700;
	font-size:11px;
	color:var(--muted);
	padding:11px 13px;
	border-bottom:1px solid var(--deduction);
	white-space:nowrap;
	background:#f6f7f8;
	text-transform:uppercase;
	letter-spacing:.1em;
}

td{padding:11px 13px;border-bottom:1px solid rgba(22,33,44,.07);vertical-align:middle}
tbody tr:last-child td{border-bottom:none}
tbody tr:nth-child(even) td{background:rgba(22,33,44,.018)}
tbody tr{transition:background .15s ease}
tbody tr:hover td{background:rgba(22,33,44,.045)}

.tag{font-size:11px;padding:4px 9px;border-radius:999px;font-weight:700;white-space:nowrap}
.tag-p1{background:#e4e8ea;color:#16212C}
.tag-p2{background:#e0f2fe;color:#0c4a6e}
.tag-p3{background:#fee2e2;color:#991b1b}
.tag-shared{background:#fef3c7;color:#92400e}
.tag-personal{background:#e4e8ea;color:#16212C}
.tag-skip{background:#f3f4f6;color:#9ca3af}

.src{font-size:11px;padding:4px 9px;border-radius:999px;background:#eef1f3;color:#6a7480;white-space:nowrap;font-weight:600}

.pts-badge{font-size:12px;white-space:nowrap}
.pts-tbl{width:100%;border-collapse:collapse;font-size:13px}
.pts-tbl th{text-align:left;font-size:12px;color:#756f67;padding:8px 10px;border-bottom:1px solid var(--deduction);text-transform:uppercase;letter-spacing:.1em;font-weight:700;background:#f6f7f8}
.pts-tbl td{padding:8px 10px;border-bottom:1px solid rgba(22,33,44,.07)}
.pts-tbl tbody tr:last-child td{border-bottom:none}
.pts-tbl input{width:52px;font-size:13px;padding:5px 7px;border-radius:8px;border:1px solid var(--line);text-align:center;outline:none;background:#fff}
.pts-tbl input:focus{border-color:var(--indigo);box-shadow:var(--ring)}

.dbg{border-radius:16px;padding:10px 13px;font-size:12px;color:#6b7280;margin-bottom:12px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;display:none}
.empty{text-align:center;padding:2.75rem 2rem;color:var(--muted);font-size:14px;line-height:1.6;background:#fbfbfc;border:1px dashed var(--line-strong);border-radius:14px}

.badge-pts{display:inline-flex;align-items:center;gap:4px}
.badge-mult{font-size:11px;color:#9ca3af}
.prog-dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:4px}
.dot-UR{background:#6366f1}.dot-MR{background:#f59e0b}.dot-Bilt{background:#10b981}.dot-Hilton{background:#3b82f6}.dot-Hyatt{background:#ec4899}

.has-tip{position:relative;cursor:help}
.has-tip::after{content:attr(data-tip);position:absolute;bottom:130%;left:0;background:#1a1a1a;color:#fff;padding:8px 10px;border-radius:10px;font-size:12px;line-height:1.4;white-space:normal;width:260px;z-index:2000;opacity:0;visibility:hidden;transition:opacity .12s;pointer-events:none;box-shadow:0 12px 24px rgba(0,0,0,.22)}
.has-tip:hover::after{opacity:1;visibility:visible}

#summaryWrap .grid3 > *,
#spTotals > *,
#pnlStatGrid > *,
#summaryStatsGrid > *{
	min-width:0;
}

/* Internal app shell polish */
.actions,
#tableWrap > div:first-child,
#bankTableWrap > div:first-child,
#panel-spending > div:first-child,
#panel-dailytracker > div:first-child,
#panel-growthplan > div:first-child,
#panel-personalfin > div:first-child,
#panel-denovo > div:first-child,
#panel-acqbuy > div:first-child,
#panel-xpexplore > div:first-child,
#panel-xpskill > div:first-child,
#panel-xpfit > div:first-child {
	padding: 14px 16px;
	margin-bottom: 16px !important;
	border: 1px solid rgba(210,214,244,.78);
	border-radius: 22px;
	background: #ffffff;
	box-shadow: var(--shadow-soft);
	backdrop-filter: blur(12px);
}

#panel-spending > div:first-child > span:first-child,
#panel-dailytracker > div:first-child > span:first-child,
#panel-growthplan > div:first-child > div:first-child > span:first-child,
#panel-xpexplore > div:first-child > div:first-child,
#panel-personalfin > div:first-child > div:first-child,
#panel-denovo > div:first-child > div:first-child > span:first-child,
#panel-acqbuy > div:first-child > div:first-child {
	font-family: var(--font-display);
	font-size: 24px !important;
	font-weight: 700 !important;
	letter-spacing: -.04em;
	color: var(--ink) !important;
}

#panel-spending > div:first-child > select,
#panel-spending > div:first-child > input,
#panel-dailytracker > div:first-child > select,
#panel-dailytracker > div:first-child > input,
#panel-growthplan > div:first-child select,
#tableWrap > div:first-child select,
#tableWrap > div:first-child input,
#bankTableWrap > div:first-child select,
#bankTableWrap > div:first-child input,
#panel-personalfin > div:first-child input,
#panel-personalfin > div:first-child select {
	border-radius: 999px !important;
	padding: 8px 12px !important;
	border: 1px solid var(--line) !important;
	background: rgba(255,255,255,.92) !important;
	box-shadow: inset 0 1px 0 rgba(255,255,255,.8);
}

#tableWrap > div:first-child .btn,
#bankTableWrap > div:first-child .btn,
#panel-spending > div:first-child .btn,
#panel-dailytracker > div:first-child .btn,
#panel-personalfin > div:first-child .btn,
#panel-growthplan > div:first-child .btn,
.actions .btn {
	box-shadow: none;
}

#summaryStatsGrid > div,
#spTotals > div,
#pfHeadline > div,
#bankSummaryGrid > div,
#gpCheckupSummary > div,
#dscrJourneyStats > div,
#gpCheckupSummary > div,
#provGoalSummary > div {
	background: #ffffff !important;
	border: 1px solid rgba(210,214,244,.72) !important;
	border-radius: 20px !important;
	padding: 16px 18px !important;
	box-shadow: var(--shadow-soft) !important;
}

#splitRuleWrap,
#bankSummaryWrap,
#bankTableWrap > div[style*="overflow-x:auto"],
#tableWrap .tbl-wrap,
#spCashFlowSummary,
#spProfSummary,
#spPersSummary,
#spByCard,
#spByType,
#spByMonth,
#spExcludedReason,
#pfSavingsTrend,
#pfSpendByCat,
#gpRevenueTable,
#gpCheckupSummary,
#gpRetentionList,
#gpInitiativeList,
#gpCredentialingList,
#gpSpecialtyList,
#gpDay1ChecklistList,
#provList,
#provMonthlyRatioTable,
#pmTable {
	border-radius: 18px;
}

#panel-settings .row-in,
#panel-bank .row-in,
#panel-dailytracker .row-in,
#panel-growthplan .row-in,
#panel-personalfin .row-in {
	gap: 10px;
}

#panel-settings .card,
#panel-bank .card,
#panel-dailytracker .card,
#panel-growthplan .card,
#panel-personalfin .card,
#panel-spending .card,
#panel-denovo .card,
#panel-acqbuy .card {
	position: relative;
	overflow: hidden;
}

#panel-settings .card::before,
#panel-bank .card::before,
#panel-dailytracker .card::before,
#panel-growthplan .card::before,
#panel-personalfin .card::before,
#panel-spending .card::before,
#panel-denovo .card::before,
#panel-acqbuy .card::before {
	content: "";
	position: absolute;
	top: -36px;
	right: -24px;
	width: 110px;
	height: 110px;
	border-radius: 999px;
	background: transparent;
	pointer-events: none;
}

#panel-settings .card > *,
#panel-bank .card > *,
#panel-dailytracker .card > *,
#panel-growthplan .card > *,
#panel-personalfin .card > *,
#panel-spending .card > *,
#panel-denovo .card > *,
#panel-acqbuy .card > * {
	position: relative;
	z-index: 1;
}

#panel-personalfin > div[style*="max-width:760px"] {
	max-width: 980px !important;
	margin: 0 auto;
}

#panel-personalfin .grid3,
#panel-growthplan .grid3,
#panel-spending .grid3,
#panel-denovo .grid3,
#panel-acqbuy .grid3 {
	gap: 14px;
}

#panel-tracker .empty,
#panel-bank #bankEmpty,
#panel-spending #spEmpty {
	background: #f7f8f9;
	border: 1px dashed rgba(210,214,244,.85);
	border-radius: 20px;
}

.panel-hero {
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(220px, .85fr);
	gap: 16px;
	align-items: center;
	padding: 20px 22px;
	margin-bottom: 16px;
	border: 1px solid rgba(210,214,244,.7);
	border-radius: 26px;
	background: #ffffff;
	box-shadow: var(--shadow-soft);
	position: relative;
	overflow: hidden;
}

.panel-hero::before {
	content: "";
	position: absolute;
	right: -40px;
	top: -28px;
	width: 180px;
	height: 180px;
	border-radius: 999px;
	background: transparent;
	pointer-events: none;
}

.panel-hero-copy,
.panel-hero-meta {
	position: relative;
	z-index: 1;
}

.panel-hero-eyebrow {
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--ink-900);
	margin-bottom: 8px;
}

.panel-hero-title {
	font-family: var(--font-display);
	font-size: 32px;
	line-height: 1.02;
	letter-spacing: -.04em;
	color: var(--ink);
	margin-bottom: 8px;
}

.panel-hero-text {
	font-size: 14px;
	line-height: 1.7;
	color: #5c5a80;
	max-width: 680px;
}

.panel-hero-meta {
	display: grid;
	gap: 10px;
	justify-items: end;
}

.panel-hero-chip {
	display: inline-flex;
	align-items: center;
	padding: 8px 12px;
	border-radius: 999px;
	border: 1px solid rgba(210,214,244,.76);
	background: rgba(255,255,255,.82);
	font-size: 12px;
	font-weight: 700;
	color: #47534d;
	box-shadow: inset 0 1px 0 rgba(255,255,255,.8);
}

.panel-hero-tracker::before {
	background: transparent;
}

.panel-hero-settings::before {
	background: transparent;
}

.panel-hero-personal::before {
	background: transparent;
}

.panel-hero-bank::before {
	background: transparent;
}

.panel-hero-daily::before {
	background: transparent;
}

.panel-hero-growth::before {
	background: transparent;
}

.data-toolbar {
	padding: 14px 16px;
	border-radius: 20px;
	border: 1px solid rgba(210,214,244,.72);
	background: #ffffff;
	box-shadow: var(--shadow-soft);
}

.tracker-filter-toolbar > span:first-child {
	font-family: var(--font-display);
	font-size: 20px !important;
	font-weight: 700 !important;
	letter-spacing: -.03em;
	color: var(--ink) !important;
	margin-right: 4px;
}

.tracker-actions .btn,
.tracker-filter-toolbar .btn,
.settings-card-registry .btn,
.bank-actions .btn,
.daily-toolbar .btn,
.growth-toolbar .btn,
.bank-filter-toolbar .btn {
	min-height: 36px;
	padding-inline: 12px;
}

.bank-filter-toolbar > span:first-child,
.daily-toolbar > span:first-child,
.growth-toolbar > div > span:first-child {
	font-family: var(--font-display);
	font-size: 20px !important;
	font-weight: 700 !important;
	letter-spacing: -.03em;
	color: var(--ink) !important;
	margin-right: 4px;
}

.settings-card-registry {
	padding: 14px;
	border-radius: 18px;
	background: #f5f6f8;
	border: 1px solid rgba(210,214,244,.8);
	box-shadow: inset 0 1px 0 rgba(255,255,255,.75);
}

#panel-settings > .card:first-of-type,
#panel-tracker > .card:first-of-type,
#panel-personalfin > div > .card:first-of-type,
#panel-bank > .card:first-of-type,
#panel-dailytracker > .card:first-of-type,
#panel-growthplan > .card:first-of-type {
	margin-top: 4px;
}

#panel-bank .row-in,
#panel-dailytracker .row-in,
#panel-growthplan .row-in {
	gap: 10px;
}

#panel-bank textarea,
#panel-dailytracker textarea,
#panel-growthplan textarea {
	border-radius: 14px !important;
	border: 1px solid var(--line) !important;
	background: rgba(255,255,255,.94) !important;
	box-shadow: inset 0 1px 0 rgba(255,255,255,.8);
}

#panel-bank .card[style*="background:#f9fafb"],
#panel-dailytracker .card[style*="background:#f9fafb"] {
	background: #f7f8f9 !important;
	border: 1px solid rgba(210,214,244,.78) !important;
	box-shadow: inset 0 1px 0 rgba(255,255,255,.8), var(--shadow-soft) !important;
}

#gpTabsWrap,
#acctHospBtnWrap,
#acctRangeSummarySection > div:first-child > div[style*="background:#f3f4f6"],
#panel-pnlanalytics > div:first-child,
#panel-growthplan #gpTabsWrap {
	border-radius: 16px;
}

#panel-growthplan #gpTabsWrap,
#acctHospBtnWrap {
	padding: 6px;
	background: rgba(255,255,255,.6);
	border: 1px solid rgba(210,214,244,.7);
}

#thHiringSim{
	display:grid;
	gap:12px;
}

.th-subtab-wrap{
	display:inline-flex;
	gap:4px;
	padding:3px;
	border-radius:11px;
	background:#f3f4f6;
	flex-wrap:wrap;
}

.th-subtab-btn{
	font-size:12px;
	font-weight:700;
	padding:6px 11px;
	border:none;
	border-radius:8px;
	background:transparent;
	color:#6b7280;
	cursor:pointer;
}

.th-subtab-btn.active{
	background:var(--ink-900);
	color:#fff;
}

.th-subtab-btn.locked{
	opacity:.45;
	background:rgba(255,255,255,.35);
	color:#9ca3af;
	backdrop-filter:saturate(80%);
}

.th-subtab-locked-msg{
	font-size:12px;
	line-height:1.55;
	color:#6b7280;
	background:rgba(249,250,251,.7);
	border:1px solid #e5e7eb;
	border-radius:9px;
	padding:10px 12px;
	display:flex;
	justify-content:space-between;
	gap:10px;
	flex-wrap:wrap;
}

.th-subtab-locked-msg button{
	font-size:12px;
	padding:5px 10px;
	border-radius:7px;
	border:1px solid #f59e0b;
	background:#fff;
	color:#92400e;
	cursor:pointer;
	font-weight:700;
}

.th-hire-head{
	display:flex;
	justify-content:space-between;
	align-items:center;
	gap:10px;
	flex-wrap:wrap;
}

.th-hire-note{
	font-size:12px;
	color:#6b7280;
}

.th-hire-seg{
	display:inline-flex;
	gap:4px;
	background:#f3f4f6;
	padding:3px;
	border-radius:10px;
	flex-wrap:wrap;
}

.th-hire-chip{
	font-size:12px;
	padding:5px 10px;
	border:none;
	border-radius:8px;
	background:transparent;
	color:#6b7280;
	cursor:pointer;
	font-weight:600;
}

.th-hire-chip.on{
	background:var(--ink-900);
	color:#fff;
}

.th-hire-subrow{
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:10px;
	flex-wrap:wrap;
}

.th-hire-subttl{
	font-size:12px;
	font-weight:700;
	color:#374151;
}

.th-hire-grid{
	display:grid;
	grid-template-columns:repeat(auto-fit,minmax(170px,1fr));
	gap:8px;
}

.th-hire-grid label{
	display:flex;
	flex-direction:column;
	gap:4px;
	font-size:12px;
	color:#6b7280;
	font-weight:600;
	min-width:0;
}

.th-hire-grid input{
	width:100%;
	font-size:12px;
	padding:7px 8px;
	border-radius:8px;
	border:1px solid #d1d5db;
	min-width:0;
}

.th-hire-grid select,
.th-hire-grid input[type=text]{
	width:100%;
	font-size:12px;
	padding:7px 8px;
	border-radius:8px;
	border:1px solid #d1d5db;
	min-width:0;
	background:#fff;
}

.th-hire-grid small,
.th-hire-subnote{
	font-size:11px;
	line-height:1.45;
	color:#9ca3af;
	font-weight:500;
}

.th-hire-kpis{
	display:grid;
	grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
	gap:8px;
}

.th-hire-kpis > div{
	border:1px solid #e5e7eb;
	border-radius:9px;
	padding:9px 10px;
	background:#fff;
	min-width:0;
}

.th-hire-kpis span{
	display:block;
	font-size:11px;
	color:#6b7280;
	margin-bottom:2px;
	text-transform:uppercase;
	letter-spacing:.03em;
	font-weight:700;
}

.th-hire-kpis b{
	font-size:18px;
	line-height:1.2;
	color:#111827;
	word-break:break-word;
}

.th-hire-meta{
	display:grid;
	grid-template-columns:repeat(auto-fit,minmax(230px,1fr));
	gap:6px;
	font-size:12px;
	color:#4b5563;
}

.th-hire-callout{
	font-size:12px;
	line-height:1.55;
	border:1px solid #cdd3d8;
	background:#eef1f3;
	padding:9px 10px;
	border-radius:8px;
	color:#16212C;
}

.th-hire-warning{
	font-size:12px;
	line-height:1.5;
	padding:9px 10px;
	border-radius:8px;
	border:1px solid #e5e7eb;
	background:#f9fafb;
	color:#374151;
}

.th-hire-warning.danger{
	background:#fef2f2;
	border-color:#fecaca;
	color:#991b1b;
}

.th-hire-warning.warn{
	background:#fffbeb;
	border-color:#fde68a;
	color:#92400e;
}

.th-hire-warning.info{
	background:#eff6ff;
	border-color:#bfdbfe;
	color:var(--ink-900);
}

.th-ramp-wrap{
	border:1px solid #e5e7eb;
	border-radius:9px;
	background:#fff;
	padding:10px;
}

.th-ramp-row{
	display:flex;
	align-items:flex-end;
	gap:5px;
	height:104px;
	margin-top:8px;
	overflow-x:auto;
	padding-bottom:2px;
}

.th-ramp-col{
	min-width:44px;
	display:flex;
	flex-direction:column;
	align-items:center;
	justify-content:flex-end;
	gap:3px;
}

.th-ramp-col span{
	font-size:9px;
	font-weight:700;
}

.th-ramp-col div{
	width:100%;
	border-radius:4px 4px 0 0;
}

.th-ramp-col em{
	font-size:8px;
	color:#9ca3af;
	font-style:normal;
}

.th-hire-actions{
	display:flex;
	gap:8px;
	flex-wrap:wrap;
}

.th-hire-btn{
	font-size:12px;
	padding:6px 11px;
	border-radius:7px;
	border:1px solid #d1d5db;
	background:#fff;
	color:#374151;
	cursor:pointer;
	font-weight:700;
}

.th-hire-btn.primary{
	background:var(--ink-900);
	border-color:var(--ink-900);
	color:#fff;
}

.th-hire-compare{
	display:grid;
	gap:6px;
}

.th-hire-compare > div{
	display:grid;
	grid-template-columns:minmax(140px,1fr) auto auto auto;
	gap:8px;
	align-items:center;
	border:1px solid #e5e7eb;
	border-radius:8px;
	background:#fff;
	padding:8px 9px;
	font-size:12px;
	color:#4b5563;
}

.th-hire-compare button{
	font-size:11px;
	padding:4px 8px;
	border-radius:6px;
	border:1px solid #fca5a5;
	background:#fff;
	color:#b91c1c;
	cursor:pointer;
}

.th-attr-grid{
	display:grid;
	grid-template-columns:repeat(auto-fit,minmax(170px,1fr));
	gap:8px;
	margin-bottom:8px;
}

.th-attr-grid label{
	display:flex;
	flex-direction:column;
	gap:4px;
	font-size:12px;
	color:#6b7280;
	font-weight:600;
}

.th-attr-grid input,
.th-attr-grid select{
	font-size:12px;
	padding:7px 8px;
	border-radius:8px;
	border:1px solid #d1d5db;
	background:#fff;
}

.th-attr-tier{
	font-size:12px;
	line-height:1.5;
	color:#4b5563;
	margin-bottom:8px;
}

.th-attr-bridge{
	border:1px solid #e5e7eb;
	border-radius:9px;
	padding:10px;
	background:#fff;
	display:grid;
	gap:4px;
}

.th-attr-row{
	display:flex;
	justify-content:space-between;
	align-items:center;
	font-size:12px;
	padding:3px 0;
	color:#374151;
}

.th-hire-bench{
	font-size:11px;
	line-height:1.6;
	color:#6b7280;
	background:#f9fafb;
	border:1px solid #e5e7eb;
	padding:8px 10px;
	border-radius:8px;
}

@media (max-width: 960px){
	.panel-hero {
		grid-template-columns: 1fr;
		padding: 18px 18px;
	}

	.panel-hero-title {
		font-size: 25px;
	}

	.panel-hero-meta {
		justify-items: start;
	}

	.th-hire-grid,
	.th-hire-kpis,
	.th-hire-meta,
	.th-attr-grid{
		grid-template-columns:1fr;
	}

	.th-hire-compare > div{
		grid-template-columns:1fr;
	}
}

@media (max-width: 960px){
	.header{
		flex-direction:column;
		align-items:stretch;
		padding:18px 16px 16px;
	}

	.header h1{font-size:24px}
	.main{padding:18px 12px 36px}
	.grid3,.grid2{grid-template-columns:1fr}
	.tabs{padding:10px;border-radius:20px}
	.tab{flex:1 1 auto;text-align:center}
}

@media (max-width: 640px){
	.header > div:last-child{justify-content:flex-start}
	.drop{padding:28px 18px}
	.card,.stat,.pts-card{padding:14px}
	.tbl-wrap{border-radius:16px}
}

/* ── Hiring: multi-provider roster ── */
.th-roster-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:10px 0 12px}
.th-roster-list{display:flex;flex-direction:column;gap:12px}
.th-roster-card{border:1px solid #e5e7f5;border-radius:14px;padding:12px 14px;background:#ffffff;box-shadow:0 2px 10px rgba(79,70,229,.05)}
.th-roster-head{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:10px}
.th-roster-head .th-roster-name{flex:1 1 200px;min-width:150px;font-size:14px;font-weight:700;padding:8px 10px;border:1px solid #d8dbf0;border-radius:9px}
.th-roster-head select{font-size:13px;padding:7px 9px;border:1px solid #d8dbf0;border-radius:9px;background:#fff;color:#334155}
.th-roster-del{margin-left:auto;border:none;background:#f1f0fb;color:#6b7280;width:30px;height:30px;border-radius:8px;cursor:pointer;font-size:13px;font-weight:700}
.th-roster-del:hover{background:#fee2e2;color:#b91c1c}
.th-roster-res{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:8px;margin-top:12px;padding-top:10px;border-top:1px dashed #e5e7f5}
.th-roster-metric{display:flex;flex-direction:column;gap:2px;background:#f7f8ff;border-radius:10px;padding:9px 11px}
.th-roster-metric span{font-size:11px;color:#6a688c;font-weight:600}
.th-roster-metric b{font-size:17px;color:#17163a}
.th-roster-metric em{font-size:10px;color:#9aa0bf;font-style:normal}
.th-roster-rolltitle{font-size:13px;font-weight:800;color:var(--ink-900);margin:16px 0 8px}
.th-roster-table{width:100%;border-collapse:collapse;font-size:13px;min-width:640px}
.th-roster-table th{text-align:right;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:#6a688c;padding:8px 10px;border-bottom:2px solid #ececf8}
.th-roster-table th:first-child{text-align:left}
.th-roster-table td{text-align:right;padding:8px 10px;border-bottom:1px solid #f1f1fb;color:#17163a;font-weight:600}
.th-roster-table td:first-child{text-align:left;font-weight:700}
.th-roster-table tr.th-roster-total td{border-top:2px solid var(--deduction);border-bottom:none;background:#f5f6f8;font-weight:800}
.th-roster-cnt{display:inline-block;min-width:18px;text-align:center;font-size:11px;font-weight:700;color:var(--ink-900);background:#e4e8ea;border-radius:999px;padding:1px 7px;margin-left:4px}
.th-roster-status{font-size:12px}
.th-roster-status.pro{border-color:#16212C;color:#16212C;background:#eef1f3}
.th-roster-card.th-roster-pro{border-color:#c9ced3;background:#ffffff;box-shadow:0 2px 12px rgba(139,92,246,.10)}
.th-sim-wrap{display:flex;align-items:stretch;gap:8px;flex-wrap:wrap;margin-bottom:8px}
.th-sim-col{flex:1 1 200px;min-width:180px;border:1px solid #e5e7f5;border-radius:12px;padding:11px 13px;background:#fff}
.th-sim-col.cur{background:#f7f8ff}
.th-sim-col.add{background:#f5f3ff;border-color:#e0d8ff}
.th-sim-col.pf{background:#eef1f3;border-color:#c7d2fe}
.th-sim-lbl{font-size:13px;font-weight:800;color:#17163a}
.th-sim-sub{font-size:10px;color:#8a89ad;margin-bottom:8px}
.th-sim-row{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:#4b4a66;padding:3px 0}
.th-sim-row b{font-size:14px}
.th-sim-row.muted{color:#9aa0bf;border-top:1px dashed #ececf8;margin-top:3px;padding-top:5px}
.th-sim-row.muted b{color:#6a688c;font-weight:600}
.th-sim-op{display:flex;align-items:center;font-size:20px;font-weight:800;color:#a5a3c9}

/* ── Global font-size (zoom) control ── */
.bk-fontscale{position:fixed;left:16px;bottom:16px;z-index:120;display:flex;align-items:center;gap:2px;background:rgba(255,255,255,.92);border:1px solid #e0e0f0;border-radius:999px;padding:4px;box-shadow:0 8px 24px rgba(30,27,75,.16);backdrop-filter:blur(8px)}
.bk-fontscale button{border:none;background:#16212C;color:#fff;font-weight:800;font-size:13px;width:34px;height:30px;border-radius:999px;cursor:pointer;line-height:1;padding:0}
.bk-fontscale button:hover{filter:brightness(1.07)}
.bk-fontscale span{font-size:12px;font-weight:700;color:var(--ink-900);min-width:44px;text-align:center;cursor:pointer;user-select:none}
@media (max-width:640px){ .bk-fontscale{left:10px;bottom:10px} }

/* ── Hide header + side-nav on scroll down, reveal on scroll up ── */
.header{transition:transform .28s ease;will-change:transform}
body.chrome-hidden .header{transform:translateY(-100%)}
.side-nav{transition:width .22s ease, transform .22s ease, opacity .18s ease, top .28s ease}
body.chrome-hidden .side-nav{top:16px}

/* ══════════════════════════════════════════════════════════
   Keepline — production-grade polish layer
   Flat ink + green, hairline depth, calm micro-interactions
   ══════════════════════════════════════════════════════════ */

/* Numerics read as precise, tabular */
.stat-val,.pts-row span:last-child,.th-hire-kpis b,.th-roster-metric b,
td,.th-sim-row b{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}

/* Button hierarchy + micro-interaction */
button.btn,button.btn-primary,.tab,.side-subtab,.chip,.nav-btn,.th-hire-btn,
.th-subtab-btn,.th-hire-chip{transition:background .15s ease,color .15s ease,border-color .15s ease,box-shadow .15s ease,transform .15s ease}
button.btn:active,button.btn-primary:active{transform:translateY(0)}

/* Secondary / ghost button (ink outline) */
button.btn-ghost{background:transparent;border:1px solid var(--line-strong);color:var(--ink-900)}
button.btn-ghost:hover{background:rgba(22,33,44,.05);border-color:var(--ink-900)}

/* Card lift on hover only where interactive intent exists (keeps calm elsewhere) */
.hero-visual-card,.persona-card{transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}

/* Chips: crisp, quiet */
.chip{font-weight:600}

/* Tighter, confident headings inside panels */
.panel-hero-title{font-weight:600;letter-spacing:-.025em}
.panel-hero-eyebrow{font-weight:700}

/* Section rhythm: consistent breathing room between stacked cards */
.card + .card{margin-top:0}
.grid3,.grid2{gap:14px}

/* Table container: hairline, quiet radius */
.tbl-wrap{border-radius:14px}

/* Right-align numeric cells when explicitly tagged (safe, opt-in) */
td.num,th.num,.cell-num{text-align:right;font-variant-numeric:tabular-nums}

/* Inputs: calmer, tactile focus */
input[type=text],input[type=date],input[type=number],textarea,select{transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}

/* Tags: 8px, quiet weight */
.tag,.src{border-radius:8px;font-weight:600}

/* Scrollbar (webkit) — unobtrusive ink */
.tbl-wrap::-webkit-scrollbar,.th-ramp-row::-webkit-scrollbar{height:9px;width:9px}
.tbl-wrap::-webkit-scrollbar-thumb,.th-ramp-row::-webkit-scrollbar-thumb{background:rgba(22,33,44,.18);border-radius:999px}
.tbl-wrap::-webkit-scrollbar-thumb:hover{background:rgba(22,33,44,.3)}

/* Keep-green semantic helper (take-home / money kept only) */
.is-keep{color:var(--keep)!important}

/* Side-nav pinned rail: crisper */
.side-group-btn{font-weight:600}
