/* ICF Customer Portal — Phase A premium dark portal (test routes only). v0.2.4 */

:root {
	--icf-bg:        #0a0e17;
	--icf-bg-2:      #0e1420;
	--icf-surface:   #141c2e;
	--icf-surface-2: #1a2336;
	--icf-border:    #25304a;
	--icf-border-2:  #2e3b59;
	--icf-text:      #eaf0fb;
	--icf-muted:     #9aa7c2;
	--icf-faint:     #66748f;
	--icf-primary:   #4f8cff;
	--icf-primary-2: #2f6df0;
	--icf-gold:      #e9c46a;
	--icf-ok-bg:     rgba(52, 211, 153, .12);
	--icf-ok-bd:     rgba(52, 211, 153, .38);
	--icf-ok-tx:     #6ee7b7;
	--icf-err-bg:    rgba(248, 113, 113, .12);
	--icf-err-bd:    rgba(248, 113, 113, .4);
	--icf-err-tx:    #fca5a5;
	--icf-radius:    18px;
	--icf-radius-sm: 11px;
}

/* ---- shell / scoped reset ---- */
body.icf-portal-body {
	margin: 0;
	min-height: 100vh;
	background:
		radial-gradient(1100px 620px at 80% -10%, rgba(79, 140, 255, .17), transparent 60%),
		radial-gradient(900px 620px at -5% 112%, rgba(233, 196, 106, .06), transparent 55%),
		linear-gradient(180deg, var(--icf-bg), var(--icf-bg-2));
	color: var(--icf-text);
	font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
	-webkit-font-smoothing: antialiased;
	line-height: 1.55;
}
body.icf-portal-body * { box-sizing: border-box; }
body.icf-portal-body a { text-decoration: none; }
.icf-ic { width: 22px; height: 22px; display: block; }

/* ============================ AUTH ============================ */
.icf-auth {
	min-height: 100vh;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 44px 18px 56px;
}
.icf-auth__inner { width: 100%; max-width: 416px; }
.icf-auth__brand { display: flex; justify-content: center; margin-bottom: 30px; }
/* Logo is the white PNG cropped to its wordmark (the file has 57% empty padding on the right,
 * which made it look small + off-centre). background-image URL is injected via wp_add_inline_style. */
.icf-logo {
	display: block;
	background-repeat: no-repeat;
	background-position: left top;
	width: 88px; height: 54px;
	background-size: 197px 54px;
	filter: drop-shadow(0 0 16px rgba(233, 196, 106, .42)) drop-shadow(0 0 5px rgba(233, 196, 106, .32));
}

.icf-auth__card {
	position: relative;
	background: linear-gradient(180deg, var(--icf-surface), #0c121d);
	border: 1px solid rgba(255, 255, 255, .07);
	border-radius: var(--icf-radius);
	padding: 34px 32px 26px;
	box-shadow:
		0 44px 90px -34px rgba(0, 0, 0, .92),
		0 10px 30px -18px rgba(0, 0, 0, .7),
		inset 0 1px 0 rgba(255, 255, 255, .05);
}
.icf-auth__card::before {
	content: "";
	position: absolute; inset: 0 0 auto 0; height: 3px;
	border-radius: var(--icf-radius) var(--icf-radius) 0 0;
	background: linear-gradient(90deg, var(--icf-primary), var(--icf-gold));
	opacity: .9;
}
.icf-auth__head { text-align: center; margin-bottom: 6px; }
.icf-auth__head h1 { font-size: 23px; font-weight: 700; margin: 0 0 5px; letter-spacing: -.015em; }
.icf-auth__head p { margin: 0; color: var(--icf-muted); font-size: 13.5px; }

/* tabs */
.icf-tabs {
	display: flex; gap: 5px;
	background: rgba(0, 0, 0, .28);
	border: 1px solid var(--icf-border);
	border-radius: var(--icf-radius-sm);
	padding: 5px; margin: 22px 0 20px;
}
.icf-tab {
	flex: 1; border: 0; cursor: pointer;
	background: transparent; color: var(--icf-muted);
	font: 600 13.5px 'Inter', sans-serif;
	padding: 10px 6px; border-radius: 8px;
	transition: .15s;
}
.icf-tab:hover { color: var(--icf-text); }
.icf-tab.is-active {
	background: linear-gradient(180deg, var(--icf-surface-2), var(--icf-surface));
	color: #fff;
	box-shadow: 0 1px 0 rgba(255, 255, 255, .06), 0 8px 18px -12px rgba(79, 140, 255, .85);
}

/* panels */
.icf-panel { display: none; }
.icf-panel.is-active { display: block; animation: icf-fade .2s ease; }
@keyframes icf-fade { from { opacity: 0; transform: translateY(5px); } to { opacity: 1; transform: none; } }

.icf-field { display: block; margin-bottom: 16px; }
.icf-field > span {
	display: block; font-size: 13px; font-weight: 500;
	color: #aab6d0; margin-bottom: 7px; letter-spacing: .01em;
}
.icf-field input {
	width: 100%; padding: 12px 14px;
	background: var(--icf-bg);
	border: 1px solid var(--icf-border-2);
	border-radius: var(--icf-radius-sm);
	color: var(--icf-text); font-size: 14px;
	transition: border-color .15s, box-shadow .15s;
}
.icf-field input::placeholder { color: var(--icf-faint); }
.icf-field input:focus {
	outline: 0; border-color: var(--icf-primary);
	box-shadow: 0 0 0 3px rgba(79, 140, 255, .18);
}
.icf-hint { display: block; margin-top: 6px; font-size: 11.5px; color: var(--icf-faint); }
.icf-field--cap > span {
	font-weight: 700; color: var(--icf-text);
	background: rgba(0, 0, 0, .3); border: 1px solid var(--icf-border);
	border-radius: 8px; padding: 7px 12px; display: inline-block; letter-spacing: .06em; font-size: 14px;
}

.icf-row { display: flex; align-items: center; justify-content: space-between; margin: 2px 0 16px; }
.icf-check { font-size: 13px; color: var(--icf-muted); display: inline-flex; align-items: center; gap: 8px; cursor: pointer; }
.icf-check input { accent-color: var(--icf-primary); width: 15px; height: 15px; }
.icf-mini { font-size: 13px; color: var(--icf-primary); }
.icf-mini:hover { text-decoration: underline; }

/* buttons */
.icf-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	border: 0; cursor: pointer; font: 600 14.5px 'Inter', sans-serif;
	padding: 13px 18px; border-radius: var(--icf-radius-sm);
	transition: transform .08s, filter .15s, background .15s;
}
.icf-btn:active { transform: translateY(1px); }
.icf-btn--block { width: 100%; }
.icf-btn--sm { padding: 9px 13px; font-size: 13px; }
.icf-btn--primary {
	color: #fff;
	background: linear-gradient(180deg, var(--icf-primary), var(--icf-primary-2));
	box-shadow: 0 12px 26px -12px rgba(79, 140, 255, .95);
}
.icf-btn--primary:hover { filter: brightness(1.08); }
.icf-btn--ghost {
	color: var(--icf-text);
	background: var(--icf-surface-2);
	border: 1px solid var(--icf-border-2);
}
.icf-btn--ghost:hover { background: var(--icf-surface); }
.icf-btn .icf-ic { width: 17px; height: 17px; }

.icf-fine { margin: 13px 0 2px; font-size: 12px; color: var(--icf-faint); text-align: center; }

/* alerts */
.icf-alert { border-radius: var(--icf-radius-sm); padding: 11px 13px; font-size: 13.5px; margin-bottom: 16px; }
.icf-alert ul { margin: 0; padding-left: 18px; }
.icf-alert--ok  { background: var(--icf-ok-bg);  border: 1px solid var(--icf-ok-bd);  color: var(--icf-ok-tx); }
.icf-alert--err { background: var(--icf-err-bg); border: 1px solid var(--icf-err-bd); color: var(--icf-err-tx); }

.icf-auth__signed { text-align: center; display: grid; gap: 11px; padding: 8px 0; }
.icf-auth__signed p { color: var(--icf-muted); margin: 0 0 4px; }

.icf-auth__foot { margin-top: 20px; padding-top: 16px; border-top: 1px solid var(--icf-border); text-align: center; }
.icf-secure { display: inline-flex; align-items: center; gap: 7px; font-size: 12px; color: var(--icf-faint); }
.icf-secure .icf-ic { width: 14px; height: 14px; }

.icf-ribbon {
	position: absolute; top: 0; right: 0;
	background: var(--icf-gold); color: #1a1407;
	font-size: 11px; font-weight: 700; padding: 4px 11px;
	border-radius: 0 var(--icf-radius) 0 11px;
}
.icf-testflag { text-align: center; margin: 18px 0 0; font-size: 11.5px; color: var(--icf-faint); font-style: italic; }

/* ============================ DASHBOARD ============================ */
.icf-dash { max-width: 1040px; margin: 0 auto; padding: 44px 22px 60px; }
.icf-dash__top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 30px; }
.icf-dash__brand { display: inline-flex; }
.icf-logo--dash {
	width: 72px; height: 44px;
	background-size: 161px 44px;
	margin-left: 6px;
	filter: drop-shadow(0 0 13px rgba(233, 196, 106, .4)) drop-shadow(0 0 4px rgba(233, 196, 106, .3));
}
.icf-dash__user { display: flex; align-items: center; gap: 13px; }
.icf-dash__uname { font-size: 14px; color: var(--icf-muted); font-weight: 500; }
.icf-avatar {
	width: 36px; height: 36px; border-radius: 50%;
	display: grid; place-items: center; font-weight: 700; font-size: 14px; color: #fff;
	background: linear-gradient(180deg, var(--icf-primary), var(--icf-primary-2));
}

.icf-hero {
	display: flex; align-items: center; justify-content: space-between; gap: 16px;
	background: linear-gradient(120deg, var(--icf-surface), var(--icf-bg-2));
	border: 1px solid rgba(255, 255, 255, .06);
	border-radius: var(--icf-radius);
	padding: 28px 30px; margin-bottom: 28px;
	box-shadow: 0 24px 50px -34px rgba(0, 0, 0, .85), inset 0 1px 0 rgba(255, 255, 255, .05);
}
.icf-hero h1 { margin: 0 0 6px; font-size: 23px; font-weight: 700; letter-spacing: -.015em; }
.icf-hero p { margin: 0; color: var(--icf-muted); font-size: 13.5px; }
.icf-dot { color: var(--icf-faint); margin: 0 5px; }

.icf-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(252px, 1fr)); gap: 18px; }
.icf-card {
	position: relative;
	background: linear-gradient(180deg, var(--icf-surface), var(--icf-bg-2));
	border: 1px solid var(--icf-border);
	border-radius: var(--icf-radius);
	padding: 22px; min-height: 144px;
	transition: border-color .15s, transform .12s, box-shadow .15s;
}
.icf-card:hover {
	border-color: var(--icf-border-2); transform: translateY(-3px);
	box-shadow: 0 22px 44px -28px rgba(0, 0, 0, .92);
}
.icf-card__icon {
	width: 46px; height: 46px; border-radius: 13px; margin-bottom: 15px;
	display: grid; place-items: center; color: var(--icf-primary);
	background: rgba(79, 140, 255, .12); border: 1px solid rgba(79, 140, 255, .22);
}
.icf-card__body h3 { margin: 0 0 6px; font-size: 16px; font-weight: 600; display: flex; align-items: center; gap: 8px; }
.icf-card__body p { margin: 0; color: var(--icf-muted); font-size: 13px; }
.icf-pill {
	font-size: 12px; font-weight: 700; color: #fff; background: var(--icf-primary-2);
	border-radius: 20px; padding: 1px 9px; line-height: 1.6;
}
.icf-soon {
	position: absolute; top: 17px; right: 17px;
	font-size: 10.5px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase;
	color: var(--icf-gold); background: rgba(233, 196, 106, .1);
	border: 1px solid rgba(233, 196, 106, .28); border-radius: 20px; padding: 3px 9px;
}

.icf-dash__foot { margin-top: 30px; text-align: center; }

/* ---- B-2a: hero stats + data sections ---- */
.icf-hero__stats { display: flex; gap: 22px; flex-shrink: 0; }
.icf-hero__stats span { color: var(--icf-muted); font-size: 13px; }
.icf-hero__stats strong { display: block; color: var(--icf-text); font-size: 22px; font-weight: 700; line-height: 1.1; }

.icf-sec {
	background: linear-gradient(180deg, var(--icf-surface), var(--icf-bg-2));
	border: 1px solid var(--icf-border);
	border-radius: var(--icf-radius);
	padding: 22px 24px; margin-bottom: 18px;
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, .04);
}
.icf-sec__head { display: flex; align-items: center; gap: 11px; margin-bottom: 16px; }
.icf-sec__ic { width: 34px; height: 34px; border-radius: 10px; display: grid; place-items: center; color: var(--icf-primary); background: rgba(79, 140, 255, .12); border: 1px solid rgba(79, 140, 255, .22); }
.icf-sec__ic .icf-ic { width: 18px; height: 18px; }
.icf-sec__head h2 { margin: 0; font-size: 16.5px; font-weight: 600; }
.icf-count { margin-left: auto; font-size: 12px; font-weight: 700; color: #fff; background: var(--icf-primary-2); border-radius: 20px; padding: 2px 11px; }
.icf-empty { margin: 4px 0; color: var(--icf-faint); font-size: 13.5px; }

.icf-tablewrap { overflow-x: auto; }
.icf-table { width: 100%; border-collapse: collapse; font-size: 13.5px; }
.icf-table th { text-align: left; color: var(--icf-muted); font-weight: 600; font-size: 12px; text-transform: uppercase; letter-spacing: .03em; padding: 0 12px 10px; border-bottom: 1px solid var(--icf-border); }
.icf-table td { padding: 12px; border-bottom: 1px solid rgba(255, 255, 255, .045); color: var(--icf-text); }
.icf-table tr:last-child td { border-bottom: 0; }
.icf-table .icf-r { text-align: right; }

.icf-badge { display: inline-block; font-size: 11.5px; font-weight: 600; padding: 3px 10px; border-radius: 20px; border: 1px solid transparent; }
.icf-badge--completed { color: #6ee7b7; background: rgba(52, 211, 153, .12); border-color: rgba(52, 211, 153, .35); }
.icf-badge--processing { color: #93c5fd; background: rgba(79, 140, 255, .14); border-color: rgba(79, 140, 255, .4); }
.icf-badge--on-hold { color: var(--icf-gold); background: rgba(233, 196, 106, .12); border-color: rgba(233, 196, 106, .35); }
.icf-badge--pending { color: var(--icf-muted); background: rgba(148, 163, 184, .12); border-color: rgba(148, 163, 184, .3); }
.icf-badge--cancelled,
.icf-badge--failed { color: #fca5a5; background: rgba(248, 113, 113, .12); border-color: rgba(248, 113, 113, .35); }
.icf-badge--refunded { color: #d8b4fe; background: rgba(192, 132, 252, .12); border-color: rgba(192, 132, 252, .32); }

.icf-dl { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.icf-dl li { display: flex; align-items: center; gap: 13px; padding: 12px 14px; background: var(--icf-bg); border: 1px solid var(--icf-border); border-radius: var(--icf-radius-sm); }
.icf-dl__ic { width: 36px; height: 36px; border-radius: 9px; display: grid; place-items: center; color: var(--icf-primary); background: rgba(79, 140, 255, .1); flex-shrink: 0; }
.icf-dl__meta { display: flex; flex-direction: column; min-width: 0; }
.icf-dl__name { font-size: 14px; font-weight: 500; color: var(--icf-text); }
.icf-dl__prod { font-size: 12px; color: var(--icf-faint); }
.icf-dl .icf-btn { margin-left: auto; flex-shrink: 0; }

.icf-billing { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px 26px; }
.icf-billing__row { display: flex; flex-direction: column; gap: 2px; }
.icf-billing__k { font-size: 11.5px; color: var(--icf-faint); text-transform: uppercase; letter-spacing: .03em; }
.icf-billing__v { font-size: 14px; color: var(--icf-text); }

/* My Software — human states */
.icf-sw { list-style: none; margin: 0; padding: 0; display: grid; gap: 11px; }
.icf-sw__item { display: flex; align-items: center; gap: 14px; padding: 14px 16px; background: var(--icf-bg); border: 1px solid var(--icf-border); border-radius: var(--icf-radius-sm); }
.icf-sw__ic { width: 42px; height: 42px; border-radius: 11px; display: grid; place-items: center; flex-shrink: 0; color: var(--icf-primary); background: rgba(79, 140, 255, .12); border: 1px solid rgba(79, 140, 255, .22); }
.icf-sw__ic .icf-ic { width: 20px; height: 20px; }
.icf-sw__main { display: flex; flex-direction: column; gap: 3px; min-width: 0; flex: 1; }
.icf-sw__name { font-size: 14.5px; font-weight: 600; color: var(--icf-text); }
.icf-sw__desc { font-size: 12.5px; color: var(--icf-muted); }
.icf-sw__detail { color: var(--icf-faint); }
.icf-swbadge--generated  { color: #93c5fd; background: rgba(79, 140, 255, .14); border-color: rgba(79, 140, 255, .4); }
.icf-swbadge--emailed    { color: var(--icf-gold); background: rgba(233, 196, 106, .12); border-color: rgba(233, 196, 106, .35); }
.icf-swbadge--window     { color: #fbbf77; background: rgba(245, 158, 66, .13); border-color: rgba(245, 158, 66, .4); }
.icf-swbadge--downloaded { color: #5eead4; background: rgba(45, 212, 191, .12); border-color: rgba(45, 212, 191, .35); }
.icf-swbadge--activated  { color: #6ee7b7; background: rgba(52, 211, 153, .13); border-color: rgba(52, 211, 153, .38); }
.icf-sw__ic--emailed    { color: var(--icf-gold); background: rgba(233, 196, 106, .12); border-color: rgba(233, 196, 106, .28); }
.icf-sw__ic--window     { color: #fbbf77; background: rgba(245, 158, 66, .12); border-color: rgba(245, 158, 66, .3); }
.icf-sw__ic--downloaded { color: #5eead4; background: rgba(45, 212, 191, .1); border-color: rgba(45, 212, 191, .28); }
.icf-sw__ic--activated  { color: #6ee7b7; background: rgba(52, 211, 153, .12); border-color: rgba(52, 211, 153, .3); }
.icf-l { text-align: left; }

/* B-3b: My Software actions + requests */
.icf-sw__item { flex-direction: column; align-items: stretch; gap: 0; }
.icf-sw__row { display: flex; align-items: center; gap: 14px; }
.icf-sw__actions { display: flex; flex-wrap: nowrap; gap: 7px; margin-top: 12px; padding-top: 12px; border-top: 1px solid rgba(255, 255, 255, .055); }
.icf-sw__actions .icf-reqf { display: flex; min-width: 0; }
.icf-sw__actions .icf-btn { font-size: 12px; padding: 8px 13px; white-space: nowrap; line-height: 1.25; border-radius: 9px; }
/* raised / 3D look so enabled actions read clearly as clickable buttons (distinct from the bright primary) */
body.icf-portal-body .icf-sw__actions .icf-btn--ghost {
	background: linear-gradient(180deg, #2d3c5b, #1c2740) !important;
	color: #eaf1ff !important;
	border: 1px solid #3f5078 !important;
	box-shadow: 0 2px 0 rgba(0, 0, 0, .38), 0 7px 15px -6px rgba(0, 0, 0, .7), inset 0 1px 0 rgba(255, 255, 255, .12);
	font-weight: 600;
}
body.icf-portal-body .icf-sw__actions .icf-btn--ghost:hover { filter: brightness(1.13); transform: translateY(-1px); }
body.icf-portal-body .icf-sw__actions .icf-btn--ghost:active { transform: translateY(0); box-shadow: 0 1px 0 rgba(0, 0, 0, .4), inset 0 1px 2px rgba(0, 0, 0, .4); }
.icf-reqf { margin: 0; }
.icf-reqs { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.icf-req { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; padding: 12px 14px; background: var(--icf-bg); border: 1px solid var(--icf-border); border-radius: var(--icf-radius-sm); }
.icf-req__type { font-weight: 600; font-size: 14px; color: var(--icf-text); }
.icf-req__sw { font-size: 13px; color: var(--icf-muted); }
.icf-req__pay { margin-left: auto; }
.icf-dash-alert { margin-bottom: 18px; }
.icf-swbadge--pending    { color: var(--icf-muted); background: rgba(148, 163, 184, .12); border-color: rgba(148, 163, 184, .3); }
.icf-swbadge--processing { color: #93c5fd; background: rgba(79, 140, 255, .14); border-color: rgba(79, 140, 255, .4); }
.icf-swbadge--completed  { color: #6ee7b7; background: rgba(52, 211, 153, .13); border-color: rgba(52, 211, 153, .38); }
.icf-swbadge--failed     { color: #fca5a5; background: rgba(248, 113, 113, .12); border-color: rgba(248, 113, 113, .35); }

body.icf-portal-body .icf-btn--disabled {
	background: var(--icf-bg-2) !important;
	color: var(--icf-faint) !important;
	border: 1px solid var(--icf-border) !important;
	cursor: not-allowed;
	opacity: .75;
}
.icf-history { margin-top: 12px; }
.icf-history summary { cursor: pointer; color: var(--icf-primary); font-size: 13px; font-weight: 600; list-style: none; padding: 4px 0; }
.icf-history summary::-webkit-details-marker { display: none; }
.icf-history summary::before { content: "▸ "; color: var(--icf-faint); }
.icf-history[open] summary::before { content: "▾ "; }
.icf-history > .icf-reqs { margin-top: 10px; }

@media (max-width: 560px) {
	.icf-auth__card { padding: 28px 22px 22px; }
	.icf-logo { width: 76px; height: 47px; background-size: 172px 47px; }
	.icf-dash { padding: 30px 16px 46px; }
	.icf-hero { flex-direction: column; align-items: flex-start; padding: 22px; }
	.icf-hero__stats { gap: 18px; }
	.icf-dash__uname { display: none; }
	.icf-sw__actions { flex-wrap: wrap; }
	/* stacked table rows */
	.icf-table thead { display: none; }
	.icf-table, .icf-table tbody, .icf-table tr, .icf-table td { display: block; width: 100%; }
	.icf-table tr { border: 1px solid var(--icf-border); border-radius: 10px; margin-bottom: 10px; padding: 6px 4px; }
	.icf-table td { border: 0 !important; display: flex; justify-content: space-between; gap: 14px; padding: 7px 12px; text-align: right; }
	.icf-table td::before { content: attr(data-l); color: var(--icf-faint); font-size: 12px; text-transform: uppercase; letter-spacing: .03em; }
	.icf-table .icf-r { text-align: right; }
}

/* ============================================================
 * THEME-BLEED HARDENING — beat Hello Elementor / Elementor kit /
 * WooCommerce form & button styles. Specificity + appearance reset
 * + targeted !important on the few fought properties only.
 * ============================================================ */
body.icf-portal-body .icf-tab,
body.icf-portal-body .icf-btn,
body.icf-portal-body .icf-field input {
	-webkit-appearance: none !important;
	-moz-appearance: none !important;
	appearance: none !important;
	font-family: 'Inter', sans-serif;
	outline: none;
}

body.icf-portal-body .icf-tabs { display: flex !important; width: 100% !important; flex-wrap: nowrap !important; }
body.icf-portal-body .icf-tab {
	flex: 1 1 0 !important;
	min-width: 0 !important;
	width: auto !important;
	padding: 10px 6px !important;
	font-size: 13.5px !important;
	line-height: 1.2 !important;
	white-space: nowrap;
	text-align: center;
	text-transform: none !important;
	border: 0 !important;
	background: transparent !important;
	color: var(--icf-muted) !important;
	border-radius: 8px !important;
	box-shadow: none;
}
body.icf-portal-body .icf-tab.is-active {
	background: linear-gradient(180deg, var(--icf-surface-2), var(--icf-surface)) !important;
	color: #fff !important;
}
body.icf-portal-body .icf-mini { color: var(--icf-primary) !important; }
body.icf-portal-body .icf-field > span { text-transform: none !important; }
body.icf-portal-body .icf-auth__head h1,
body.icf-portal-body .icf-hero h1 { text-transform: none !important; }

body.icf-portal-body .icf-field input {
	background: var(--icf-bg) !important;
	border: 1px solid var(--icf-border-2) !important;
	color: var(--icf-text) !important;
	border-radius: var(--icf-radius-sm) !important;
}
body.icf-portal-body .icf-field input:focus {
	border-color: var(--icf-primary) !important;
	box-shadow: 0 0 0 3px rgba(79, 140, 255, .18) !important;
}
body.icf-portal-body .icf-field input:-webkit-autofill,
body.icf-portal-body .icf-field input:-webkit-autofill:hover,
body.icf-portal-body .icf-field input:-webkit-autofill:focus {
	-webkit-text-fill-color: var(--icf-text) !important;
	-webkit-box-shadow: 0 0 0 1000px var(--icf-bg) inset !important;
	caret-color: var(--icf-text);
	transition: background-color 9999s ease 0s;
}

body.icf-portal-body .icf-btn {
	border: 0 !important;
	border-radius: var(--icf-radius-sm) !important;
	text-decoration: none !important;
}
body.icf-portal-body .icf-btn--primary {
	background: linear-gradient(180deg, var(--icf-primary), var(--icf-primary-2)) !important;
	color: #fff !important;
}
body.icf-portal-body .icf-btn--ghost {
	background: var(--icf-surface-2) !important;
	border: 1px solid var(--icf-border-2) !important;
	color: var(--icf-text) !important;
}
/* v0.5.1 FIX: the theme-bleed reset used to strip appearance off this checkbox too — the
   checked state became invisible ("Remember me looks dead"). Native rendering restored. */
body.icf-portal-body .icf-check input {
	-webkit-appearance: checkbox !important;
	-moz-appearance: checkbox !important;
	appearance: auto !important;
	width: 15px !important;
	height: 15px !important;
	accent-color: var(--icf-primary);
	cursor: pointer;
}

/* hide leftover site chrome on the standalone portal (only on the 2 portal pages) */
body.icf-portal-body .gtranslate_wrapper,
body.icf-portal-body [id^="gt_float"],
body.icf-portal-body .gt_float_switcher,
body.icf-portal-body #goog-gt-tt,
/* Chaty floating contact widget (chat / Telegram / "Contact us") + Chatway */
body.icf-portal-body [id^="chaty-widget"],
body.icf-portal-body .chaty-widget,
body.icf-portal-body .chaty-i-trigger,
body.icf-portal-body .chaty-channels,
body.icf-portal-body [id^="chatway-widget"],
body.icf-portal-body [class*="chatway-widget"],
body.icf-portal-body iframe[id^="chatway"] { display: none !important; }

/* ============================================================
   v0.4.0 — two-step ARMED confirm state + Cancel-request button
   ============================================================ */
body.icf-portal-body .icf-btn.is-armed {
	background: linear-gradient(180deg, #e25555, #b83232) !important;
	border-color: #ef6a6a !important;
	color: #fff !important;
	box-shadow: 0 6px 18px rgba(226, 85, 85, .35) !important;
	animation: icf-arm-pulse 1s ease-in-out infinite;
}
@keyframes icf-arm-pulse {
	0%, 100% { box-shadow: 0 6px 18px rgba(226, 85, 85, .35); }
	50%      { box-shadow: 0 6px 24px rgba(226, 85, 85, .6); }
}
body.icf-portal-body .icf-btn--cancel {
	background: transparent !important;
	border: 1px solid rgba(226, 85, 85, .45) !important;
	color: #e89090 !important;
}
body.icf-portal-body .icf-btn--cancel:hover {
	background: rgba(226, 85, 85, .12) !important;
	border-color: #e25555 !important;
	color: #ffb3b3 !important;
}
body.icf-portal-body .icf-req__cancel { display: inline-block; margin-left: 6px; }

/* ============================================================
   v0.5.0 — dashboard RAIL layout (Option A: sticky left navigator,
   one view at a time = no long scrolling)
   ============================================================ */
body.icf-portal-body .icf-shell {
	display: grid;
	grid-template-columns: 216px minmax(0, 1fr);
	gap: 20px;
	align-items: start;
	margin-top: 18px;
}
body.icf-portal-body .icf-rail {
	position: sticky;
	top: 18px;
	display: flex;
	flex-direction: column;
	gap: 4px;
	padding: 10px;
	background: var(--icf-card, rgba(255, 255, 255, .03));
	border: 1px solid var(--icf-border-2, rgba(255, 255, 255, .08));
	border-radius: var(--icf-radius, 14px);
}
body.icf-portal-body .icf-rail__btn {
	display: flex;
	align-items: center;
	gap: 10px;
	width: 100%;
	padding: 11px 12px;
	border: 0;
	border-radius: 10px;
	background: transparent;
	color: var(--icf-text-dim, #9aa3b2);
	font: inherit;
	font-size: 13.5px;
	font-weight: 600;
	text-align: left;
	cursor: pointer;
	transition: background .15s ease, color .15s ease;
}
body.icf-portal-body .icf-rail__btn:hover { background: rgba(255, 255, 255, .05); color: var(--icf-text, #e8ecf3); }
body.icf-portal-body .icf-rail__btn.is-active {
	background: linear-gradient(180deg, rgba(79, 140, 255, .22), rgba(79, 140, 255, .10));
	color: var(--icf-text, #fff);
	box-shadow: inset 0 0 0 1px rgba(79, 140, 255, .35);
}
body.icf-portal-body .icf-rail__ic .icf-ic { width: 18px; height: 18px; }
body.icf-portal-body .icf-rail__label { flex: 1 1 auto; min-width: 0; }
body.icf-portal-body .icf-rail__badge {
	font-size: 11px;
	font-weight: 700;
	padding: 2px 8px;
	border-radius: 999px;
	background: rgba(79, 140, 255, .22);
	color: var(--icf-text, #fff);
}
body.icf-portal-body .icf-content { min-width: 0; }
body.icf-portal-body .icf-view { display: none; }
body.icf-portal-body .icf-view.is-active { display: block; }
body.icf-portal-body .icf-dash--rail .icf-sec { margin-top: 0; }

body.icf-portal-body .icf-stats {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 12px;
	margin: 16px 0;
}
body.icf-portal-body .icf-stat {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 2px;
	padding: 14px 16px;
	border: 1px solid var(--icf-border-2, rgba(255, 255, 255, .08));
	border-radius: 12px;
	background: var(--icf-card, rgba(255, 255, 255, .03));
	color: var(--icf-text-dim, #9aa3b2);
	font: inherit;
	cursor: pointer;
	transition: border-color .15s ease, transform .15s ease;
}
body.icf-portal-body .icf-stat:hover { border-color: rgba(79, 140, 255, .45); transform: translateY(-1px); }
body.icf-portal-body .icf-stat strong { font-size: 22px; color: var(--icf-text, #fff); }
body.icf-portal-body .icf-stat span { font-size: 12px; }
body.icf-portal-body .icf-stat--hot { border-color: rgba(226, 85, 85, .55); }
body.icf-portal-body .icf-stat--hot strong { color: #ff9d9d; }

@media (max-width: 900px) {
	body.icf-portal-body .icf-shell { display: block; }
	body.icf-portal-body .icf-rail {
		position: static;
		flex-direction: row;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		margin-bottom: 14px;
		padding: 8px;
	}
	body.icf-portal-body .icf-rail__btn { width: auto; white-space: nowrap; padding: 9px 12px; }
	body.icf-portal-body .icf-rail__label { flex: none; }
	body.icf-portal-body .icf-stats { grid-template-columns: repeat(2, 1fr); }
}

/* ============================================================
   v0.5.1 — "building your file" processing overlay
   (shown after a paid deliverable; JS polls, then reveals Downloads)
   ============================================================ */
body.icf-portal-body .icf-procwrap {
	position: fixed;
	inset: 0;
	z-index: 90;
	display: flex;
	align-items: center;
	justify-content: center;
	background: rgba(7, 9, 15, .8);
	backdrop-filter: blur(4px);
	opacity: 1;
	transition: opacity .3s ease;
}
body.icf-portal-body .icf-procwrap.is-done { opacity: 0; pointer-events: none; }
body.icf-portal-body .icf-proc__card {
	max-width: 400px;
	margin: 0 16px;
	padding: 32px 36px;
	text-align: center;
	background: var(--icf-card, #11141c);
	border: 1px solid var(--icf-border-2, rgba(255, 255, 255, .1));
	border-radius: 16px;
	box-shadow: 0 24px 60px rgba(0, 0, 0, .5);
}
body.icf-portal-body .icf-spin {
	width: 46px;
	height: 46px;
	margin: 0 auto 16px;
	border-radius: 50%;
	border: 3px solid rgba(79, 140, 255, .22);
	border-top-color: #4f8cff;
	animation: icfspin .9s linear infinite;
}
@keyframes icfspin { to { transform: rotate(360deg); } }
body.icf-portal-body .icf-proc__card h3 { margin: 0 0 8px; font-size: 17px; color: var(--icf-text, #fff); }
body.icf-portal-body .icf-proc__card p { margin: 0; font-size: 13.5px; line-height: 1.6; color: var(--icf-text-dim, #9aa3b2); }

/* ============================================================
   v0.5.2 — register restructure: Google button + or-divider + name row
   ============================================================ */
body.icf-portal-body .icf-btn--google {
	display: flex !important;
	align-items: center;
	justify-content: center;
	gap: 10px;
	background: #ffffff !important;
	color: #1f2430 !important;
	border: 1px solid #d7dce6 !important;
	font-weight: 600;
}
body.icf-portal-body .icf-btn--google:hover { background: #f3f6fc !important; }
body.icf-portal-body .icf-btn--google.is-waiting { opacity: .55; cursor: not-allowed; }
body.icf-portal-body .icf-gmark { width: 18px; height: 18px; flex: none; }
body.icf-portal-body .icf-or {
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 14px 0;
	color: var(--icf-muted, #8a93a5);
	font-size: 12px;
	text-transform: none;
}
body.icf-portal-body .icf-or::before,
body.icf-portal-body .icf-or::after {
	content: "";
	flex: 1 1 auto;
	height: 1px;
	background: var(--icf-border-2, rgba(255, 255, 255, .1));
}
body.icf-portal-body .icf-row2 { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
@media (max-width: 480px) { body.icf-portal-body .icf-row2 { grid-template-columns: 1fr; } }

/* v0.4.2 — reset panel without a top tab */
body.icf-portal-body .icf-panel__title {
	margin: 2px 0 14px;
	font-size: 15px;
	font-weight: 700;
	color: var(--icf-text);
	text-align: center;
}
body.icf-portal-body .icf-mini--block { display: block; text-align: center; margin-top: 12px; }

/* ============================================================
   v0.7.33 — responsive sweep across auth + dashboard
   (mobile / tablet / laptop / desktop / wide). Additive — existing
   560/900/480 breakpoints above still apply; these fill the gaps.
   ============================================================ */
/* tablet portrait (rail already collapses at <=900px) */
@media (min-width: 561px) and (max-width: 820px) {
	body.icf-portal-body .icf-hero { gap: 18px; }
	body.icf-portal-body .icf-grid { grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); }
}
/* small phones: tighten auth + dashboard padding, 2-up stats stay compact */
@media (max-width: 440px) {
	body.icf-portal-body .icf-auth { padding: 26px 12px 38px; }
	body.icf-portal-body .icf-auth__card { padding: 24px 18px 20px; }
	body.icf-portal-body .icf-auth__head h1 { font-size: 20px; }
	body.icf-portal-body .icf-dash { padding: 24px 12px 40px; }
	body.icf-portal-body .icf-hero { padding: 18px 16px; }
	body.icf-portal-body .icf-hero h1 { font-size: 20px; }
	body.icf-portal-body .icf-card { padding: 18px; min-height: 0; }
	body.icf-portal-body .icf-stats { grid-template-columns: 1fr 1fr; gap: 9px; }
	body.icf-portal-body .icf-sec { padding: 18px 15px; }
}
/* wide monitors: use a little more width without over-stretching forms */
@media (min-width: 1600px) {
	body.icf-portal-body .icf-dash { max-width: 1200px; }
}
