/* =========================================================================
   GyanPustak Tools Child — tools.css
   Tool shell helpers ONLY. Loaded on tool/directory/home/favorites pages.
   Everything is opt-in and namespaced: your calculator markup never changes.
   Optional utility classes documented in the admin Documentation page:
   .gp-tool-input .gp-tool-select .gp-tool-button .gp-tool-result
   .gp-tool-result--primary|--success|--info|--warning  .gp-tool-table-wrap
   ========================================================================= */

/* optional reusable inputs (never applied globally) */
.gp-tool-input, .gp-tool-select, .gp-tool-fieldset input, .gp-tool-fieldset select {
	width: 100%; padding: 11px 14px; font-size: 1rem;
	border: 1px solid var(--gp-border); border-radius: var(--gp-radius-btn);
	background: var(--gp-card); color: var(--gp-text);
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
	min-height: 44px;
}
.gp-tool-input:focus, .gp-tool-select:focus {
	border-color: var(--gp-primary); outline: none;
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--gp-primary) 22%, transparent);
}
.gp-tool-field { margin-bottom: 14px; }
.gp-tool-field label { display: block; font-weight: 600; font-size: 0.9rem; margin-bottom: 6px; color: var(--gp-text); }
.gp-tool-hint { color: var(--gp-muted); font-size: 0.82rem; margin-top: 5px; }

.gp-tool-button {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	background: var(--gp-primary); color: #fff; border: 0; cursor: pointer;
	padding: 12px 22px; min-height: 46px; font-size: 1rem; font-weight: 600;
	border-radius: var(--gp-radius-btn); transition: background 0.15s ease, transform 0.12s ease;
}
.gp-tool-button:hover { background: color-mix(in srgb, var(--gp-primary) 88%, #000); color: #fff; }
.gp-tool-button:active { transform: scale(0.98); }
.gp-tool-button--secondary { background: var(--gp-bg); color: var(--gp-text); border: 1px solid var(--gp-border); }

/* optional reusable results */
.gp-tool-result {
	background: color-mix(in srgb, var(--gp-primary) 7%, var(--gp-card));
	border: 1px solid color-mix(in srgb, var(--gp-primary) 28%, transparent);
	border-radius: var(--gp-radius-card); padding: 18px 20px; margin: 16px 0;
}
.gp-tool-result__label, .gp-tool-result strong { display: block; }
.gp-tool-result strong { font-size: 1.7rem; color: var(--gp-primary); font-variant-numeric: tabular-nums; }
.gp-tool-result--primary strong { color: var(--gp-primary); }
.gp-tool-result--success { border-color: color-mix(in srgb, var(--gp-success) 35%, transparent); background: color-mix(in srgb, var(--gp-success) 8%, var(--gp-card)); }
.gp-tool-result--success strong { color: var(--gp-success); }
.gp-tool-result--info { border-color: color-mix(in srgb, var(--gp-secondary) 35%, transparent); background: color-mix(in srgb, var(--gp-secondary) 8%, var(--gp-card)); }
.gp-tool-result--info strong { color: var(--gp-secondary); }
.gp-tool-result--warning { border-color: color-mix(in srgb, var(--gp-warning) 40%, transparent); background: color-mix(in srgb, var(--gp-warning) 9%, var(--gp-card)); }
.gp-tool-result--warning strong { color: var(--gp-warning); }

/* responsive calculator result tables — never overflow the viewport */
.gp-tool-table-wrap, .gp-tools-child .entry-content .gp-tool-table-wrap {
	width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch;
	margin: 14px 0; border-radius: 10px; border: 1px solid var(--gp-border);
}
/* optional scroll-capped variant for long schedules: .gp-tool-table-wrap--scroll */
.gp-tool-table-wrap--scroll { max-height: 460px; overflow: auto; }
.gp-tool-table-wrap table { width: 100%; border-collapse: collapse; min-width: 480px; }
.gp-tool-table-wrap th, .gp-tool-table-wrap td {
	padding: 10px 14px; text-align: left; border-bottom: 1px solid var(--gp-border);
	font-size: 0.9rem; white-space: nowrap;
}
.gp-tool-table-wrap thead th {
	position: sticky; top: 0; background: var(--gp-card); z-index: 1;
	font-weight: 700; color: var(--gp-text);
}
.gp-tool-table-wrap tbody tr:hover { background: color-mix(in srgb, var(--gp-primary) 4%, transparent); }
.gp-tool-table-wrap td[align="right"], .gp-tool-table-wrap .num { text-align: right; font-variant-numeric: tabular-nums; }

/* app-mode shell */
.gp-app-mode .gp-tool-app__content,
.gp-tool-layout-app .entry-content {
	background: var(--gp-card); border: 1px solid var(--gp-border);
	border-radius: var(--gp-radius-card); box-shadow: var(--gp-shadow);
	padding: 22px; max-width: var(--gp-width-tool); margin: 0 auto;
}
.gp-tool-layout-full .entry-content { max-width: none; }
.gp-tool-layout-centered .entry-content { max-width: var(--gp-width-tool, 100%); margin-left: auto; margin-right: auto; }
/* Full-width mode: hero + content use the whole page column, always centred. */
.gp-tool-layout-centered .gp-tool-hero,
.gp-tool-layout-centered .gp-tool-shell { margin-left: auto; margin-right: auto; max-width: 100%; }
@media (min-width: 1600px) {
	.gp-tool-layout-centered .gp-tool-hero,
	.gp-tool-layout-centered .entry-content,
	.gp-tool-layout-centered .gp-tool-shell { max-width: min(var(--gp-width-tool, 100%), 1600px); }
}

/* sticky desktop result panel */
@media (min-width: 1025px) {
	body.gp-sticky-result .gp-tool-result.is-sticky {
		position: sticky; top: 90px; z-index: 5;
		box-shadow: 0 10px 30px rgba(17, 24, 39, 0.12);
	}
}

/* ---------------------------------------------------------- fullscreen */
/* Fullscreen v2: pure-CSS theatre — the content never leaves its spot. */
html[data-gp-fullscreen="1"] { overflow: hidden; }
html[data-gp-fullscreen="1"] body { overflow: hidden; }
.gp-fs-target {
	position: fixed !important;
	inset: 0 !important;
	z-index: 99998 !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 18px !important;
	overflow: auto !important;
	background: var(--gp-bg) !important;
}
.gp-fs-bar {
	position: fixed; top: 10px; left: 50%; transform: translateX(-50%);
	z-index: 99999; display: flex; align-items: center; gap: 10px;
	background: var(--gp-card); border: 1px solid var(--gp-border); border-radius: 999px;
	box-shadow: 0 8px 30px rgba(15, 23, 42, 0.25); padding: 6px 8px 6px 16px; max-width: min(92vw, 640px);
}
.gp-fs-bar__title { font-weight: 700; font-size: 0.92rem; color: var(--gp-text); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gp-fs-bar__close {
	display: inline-flex; align-items: center; gap: 6px; padding: 7px 14px; border-radius: 999px;
	background: color-mix(in srgb, var(--gp-danger) 10%, transparent); border: 1px solid color-mix(in srgb, var(--gp-danger) 35%, transparent);
	color: var(--gp-danger); font-weight: 700; font-size: 0.85rem; cursor: pointer;
}
.gp-fs-bar__close .gp-icon { width: 15px; height: 15px; }
.gp-fs-bar__close:hover { background: var(--gp-danger); color: #fff; }
.gp-fullscreen__body { max-width: var(--gp-width-tool); margin: 0 auto; padding: 20px; }
html[data-gp-fullscreen="1"] .gp-bottomnav,
html[data-gp-fullscreen="1"] .gp-toolbar-wrap,
html[data-gp-fullscreen="1"] #masthead,
html[data-gp-fullscreen="1"] .site-footer,
html[data-gp-fullscreen="1"] #colophon { display: none !important; }

/* ------------------------------------------------------------- print */
@media print {
	#masthead, .site-header, #site-navigation, .gp-bottomnav, .gp-drawer,
	.gp-search-modal, .gp-toasts, .gp-toolbar-wrap, .gp-ad, .site-footer, #colophon,
	.gp-breadcrumbs, .gp-tool-hero__actions, .gp-result-bar, .gp-related,
	.gp-tool-nav, .gp-rating, .gp-sidebar, #secondary, .gp-faq__toggle .gp-icon,
	.gp-404__search, .gp-hero, .gp-home-section__more {
		display: none !important;
	}
	html, body { background: #fff !important; color: #000 !important; font-size: 12pt; }
	.gp-tool-hero, .gp-tool-section, .gp-faq__item, .gp-note, .gp-tool-result {
		box-shadow: none !important; border: 1px solid #999 !important;
		break-inside: avoid; background: #fff !important;
	}
	.gp-tool-hero__title, .gp-tool-section__title, .gp-faq__q, .gp-note__body, .gp-tool-result strong { color: #000 !important; }
	.gp-faq__a { display: block !important; }
	.gp-faq__a[hidden] { display: block !important; }
	.gp-tool-table-wrap { overflow: visible; border: 1px solid #999; }
	.gp-tool-table-wrap table { min-width: 0; }
	.gp-tool-table-wrap thead th { position: static; }
	a { color: #000 !important; text-decoration: underline; }
	.gp-tool-formula { border: 1px solid #999; background: #fff; }
}
