:root {
	--imp-blue: #2563eb;
	--imp-navy: #06326b;
	--imp-bg: #f9fafb;
	--imp-text: #172033;
	--imp-green: #16a34a;
}

.imp-auth,
.imp-shell,
.imp-auth *,
.imp-shell * {
	box-sizing: border-box;
}

.imp-auth,
.imp-shell {
	width: 100%;
	max-width: 100%;
	font-family: Inter, system-ui, -apple-system, "Segoe UI", sans-serif;
	color: var(--imp-text);
}

.imp-preview-banner {
	position: relative;
	z-index: 20;
	padding: 12px 18px;
	background: #f59e0b;
	color: #111827;
	text-align: center;
	font: 700 14px/1.4 Inter, system-ui, sans-serif;
	overflow-wrap: anywhere;
}

.imp-auth {
	min-height: 70vh;
	display: grid;
	place-items: center;
	padding: 32px 16px;
	background: var(--imp-bg);
}

.imp-auth-card {
	width: min(420px, 100%);
	min-width: 0;
	padding: 36px;
	background: #fff;
	border: 1px solid #e5e7eb;
	border-radius: 16px;
	box-shadow: 0 18px 50px rgba(15, 23, 42, .08);
}

/* The policy is longer than a login form; keep it readable on desktop without
 * letting it become a full-width wall of text. */
.imp-auth-card.imp-policy-consent {
	width: min(860px, 100%);
	max-width: 860px;
}

.imp-policy-consent .imp-policy-terms {
	margin: 20px 0;
	padding: 24px 28px;
	text-align: left;
}

.imp-policy-consent .imp-policy-terms p {
	max-width: 74ch;
	margin: 0 0 14px;
	line-height: 1.65;
}

.imp-policy-consent .imp-policy-terms p:last-child {
	margin-bottom: 0;
}

.imp-brand {
	display: flex;
	align-items: center;
	gap: 10px;
	min-width: 0;
	margin-bottom: 28px;
}

.imp-brand span {
	flex: 0 0 44px;
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: var(--imp-blue);
	color: #fff;
	font-weight: 800;
	font-size: clamp(.7rem, 2vw, 1rem);
	text-align: center;
	overflow: hidden;
}

.imp-brand img {
	flex: 0 0 46px;
	display: block;
	width: 46px;
	height: 46px;
	border-radius: 10px;
	background: #fff;
	object-fit: contain;
}

.imp-brand small {
	font-weight: 700;
	overflow-wrap: anywhere;
}

.imp-auth h1 {
	margin: 0 0 8px;
	font-size: clamp(1.65rem, 6vw, 2rem);
	line-height: 1.2;
}

.imp-auth p {
	color: #64748b;
}

.imp-auth label {
	display: block;
	margin: 18px 0 6px;
	font-weight: 600;
}

.imp-auth input:not([type="checkbox"]) {
	display: block;
	width: 100%;
	max-width: 100%;
	min-height: 46px;
	padding: 12px;
	border: 1px solid #cbd5e1;
	border-radius: 8px;
	font: inherit;
}

.imp-auth .imp-check {
	display: flex;
	align-items: center;
	gap: 8px;
	font-weight: 400;
}

.imp-auth .imp-check input {
	flex: 0 0 auto;
	width: 18px;
	height: 18px;
}

.imp-auth button {
	width: 100%;
	min-height: 46px;
	margin-top: 18px;
	padding: 13px;
	border: 0;
	border-radius: 8px;
	background: var(--imp-blue);
	color: #fff;
	font: inherit;
	font-weight: 700;
	cursor: pointer;
}

.imp-alert {
	padding: 12px;
	border-radius: 8px;
	overflow-wrap: anywhere;
}

.imp-alert-error {
	background: #fee2e2;
	color: #991b1b;
}

.imp-alert-success {
	background: #dcfce7;
	color: #166534;
}

.imp-alert-warning {
	background: #fef3c7;
	color: #92400e;
}

.imp-alert p {
	margin: 0;
}

.imp-shell {
	display: grid;
	grid-template-columns: minmax(210px, 240px) minmax(0, 1fr);
	min-height: 72vh;
	background: var(--imp-bg);
}

.imp-sidebar {
	display: flex;
	min-width: 0;
	flex-direction: column;
	padding: 24px 18px;
	background: linear-gradient(180deg, var(--imp-navy), #021d42);
	color: #fff;
}

.imp-sidebar nav {
	display: grid;
	gap: 8px;
}

.imp-sidebar nav a,
.imp-sidebar nav span {
	display: flex;
	align-items: center;
	min-height: 44px;
	padding: 11px 14px;
	border-radius: 8px;
	color: #dbeafe;
	line-height: 1.3;
	text-decoration: none;
	overflow-wrap: anywhere;
}

.imp-sidebar nav .active {
	background: var(--imp-blue);
	color: #fff;
}

.imp-logout {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	margin-top: auto;
	color: #dbeafe;
	overflow-wrap: anywhere;
}

.imp-content {
	min-width: 0;
	padding: clamp(24px, 4vw, 40px);
}

.imp-content h1 {
	margin-top: 0;
	font-size: clamp(1.7rem, 4vw, 2.25rem);
	line-height: 1.2;
	overflow-wrap: anywhere;
}

.imp-content > p {
	max-width: 75ch;
	overflow-wrap: anywhere;
}

.imp-cards {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 18px;
	margin-top: 28px;
}

.imp-cards article {
	display: grid;
	min-width: 0;
	gap: 12px;
	padding: 22px;
	background: #fff;
	border: 1px solid #e5e7eb;
	border-radius: 12px;
	overflow-wrap: anywhere;
}

.imp-cards article span {
	font-size: 1.4rem;
	font-weight: 700;
}

.imp-status {
	color: var(--imp-green);
}

.imp-panel {
	min-width: 0;
	margin-top: 28px;
	padding: 24px;
	background: #fff;
	border: 1px solid #e5e7eb;
	border-radius: 14px;
}

.imp-panel h2 {
	margin: 0 0 16px;
	font-size: clamp(1.3rem, 4vw, 1.6rem);
}

.imp-table-wrap {
	max-width: 100%;
	overflow-x: auto;
	overflow-y: hidden;
	-webkit-overflow-scrolling: touch;
	scrollbar-gutter: stable;
}

.imp-table {
	width: 100%;
	min-width: 650px;
	border-collapse: collapse;
}

.imp-table th,
.imp-table td {
	padding: 12px 10px;
	border-bottom: 1px solid #e5e7eb;
	text-align: left;
	vertical-align: middle;
}

.imp-table th {
	font-size: .82rem;
	text-transform: uppercase;
	letter-spacing: .04em;
	color: #64748b;
}

.imp-table td {
	overflow-wrap: break-word;
}

.imp-muted {
	color: #64748b;
}

.imp-badge {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 4px 9px;
	border-radius: 999px;
	background: #e2e8f0;
	color: #334155;
	font-size: .82rem;
	font-weight: 700;
	white-space: nowrap;
}

.imp-badge::before {
	content: "";
	display: block;
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: currentColor;
}

.imp-badge-active,
.imp-badge-paid,
.imp-badge-resolved {
	background: #dcfce7;
	color: #166534;
}

.imp-badge-pending,
.imp-badge-draft {
	background: #fef3c7;
	color: #92400e;
}

.imp-badge-open {
	background: #dbeafe;
	color: #1e40af;
}

.imp-badge-overdue {
	background: #fee2e2;
	color: #991b1b;
}

.imp-badge-cancelled,
.imp-badge-archived,
.imp-badge-suspended,
.imp-badge-inactive,
.imp-badge-closed {
	background: #e2e8f0;
	color: #475569;
}

.imp-badge-paused {
	background: #fef3c7;
	color: #92400e;
}

.imp-badge-in-progress {
	background: #dbeafe;
	color: #1e40af;
}

.imp-badge-waiting-client {
	background: #ffedd5;
	color: #9a3412;
}

.imp-badge-completed {
	background: #dcfce7;
	color: #166534;
}

.imp-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 40px;
	padding: 7px 11px;
	border-radius: 8px;
	background: var(--imp-blue);
	color: #fff;
	text-align: center;
	text-decoration: none;
	font-weight: 700;
	white-space: nowrap;
}

.imp-button:hover,
.imp-button:focus {
	color: #fff;
	filter: brightness(.95);
}

.imp-payment-form {
	margin: 0;
}

.imp-payment-form .imp-button {
	border: 0;
	font: inherit;
	cursor: pointer;
}

.imp-payment-actions { display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.imp-payment-actions .imp-button { min-height:38px; }
.imp-file-actions { display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.imp-table .imp-file-actions { flex-direction:column; align-items:flex-start; }
.imp-document-row > .imp-file-actions { justify-content:flex-end; }
.imp-payment-summary { display:flex; align-items:center; gap:10px; margin:0 0 16px; padding:12px 14px; border:1px solid #fde68a; border-radius:12px; background:#fffbeb; color:#78350f; }
.imp-payment-summary p { margin:0; font-size:.88rem; }
.imp-payment-paid-date { display:block; margin-top:6px; color:#475569; font-size:.74rem; line-height:1.35; white-space:nowrap; }
.imp-service-continuity { display:grid; gap:10px; margin-top:18px; }
.imp-service-continuity > header { padding:2px 2px 4px; }
.imp-service-continuity > header h2 { margin:0 0 4px; color:#0b2b55; font-size:1.05rem; }
.imp-service-continuity > header p { margin:0; color:#64748b; font-size:.86rem; }

/* Client services: readable cards with the next useful action in view. */
.imp-service-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:18px}
.imp-service-kpis article{display:grid;grid-template-columns:auto auto 1fr;align-items:center;gap:5px 14px;min-height:88px;padding:16px 20px;border:1px solid #d7e2ee;border-radius:12px;background:#fff;box-shadow:0 5px 18px rgba(15,51,90,.035)}
.imp-service-kpis article>span{grid-row:1/3;display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:#e8f1ff;color:#1769d2}.imp-service-kpis article>span .imp-icon{width:25px;height:25px}
.imp-service-kpis article strong{align-self:end;color:#0b2b55;font-size:1.75rem;line-height:1}.imp-service-kpis article small{align-self:start;color:#58708e;font-size:.96rem}
.imp-service-kpis .is-active{border-color:#ccebd8;background:linear-gradient(115deg,#fff,#f1fcf5)}.imp-service-kpis .is-active>span{background:#d8f7e4;color:#079447}
.imp-service-kpis .is-paused>span{background:#e3efff;color:#1769d2}
.imp-client-services-list{display:grid;gap:16px}.imp-client-service-card{overflow:hidden;border:1px solid #d4e0ec;border-radius:14px;background:#fff;box-shadow:0 7px 24px rgba(15,51,90,.045)}
.imp-client-service-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:14px;padding:17px 20px 13px;cursor:pointer;list-style:none}.imp-client-service-head::-webkit-details-marker{display:none}.imp-client-service-head::after{content:'▾';display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#eef4fa;color:#1769d2;font-weight:900;transition:transform .18s ease}.imp-client-service-card:not([open])>.imp-client-service-head::after{transform:rotate(-90deg)}.imp-client-service-card:not([open])>.imp-client-service-head{padding-bottom:17px}.imp-client-service-body{border-top:1px solid transparent}.imp-client-service-card[open]>.imp-client-service-body{border-top-color:#edf2f7}
.imp-client-service-icon{display:grid;place-items:center;width:54px;height:54px;border-radius:12px;background:linear-gradient(145deg,#e4f0ff,#f4f8ff);color:#1769d2}.imp-client-service-icon .imp-icon{width:29px;height:29px}
.imp-client-service-head>div{min-width:0}.imp-client-service-head h2{margin:0;color:#102f55;font-size:1.08rem;line-height:1.3}.imp-client-service-head p{margin:3px 0 0;color:#64748b;font-size:.86rem}.imp-client-service-head a,.imp-client-service-identifier{display:inline-flex;align-items:center;gap:5px;margin-top:4px;color:#1769d2;font-size:.84rem;font-weight:600;text-decoration:none;overflow-wrap:anywhere}.imp-client-service-head a .imp-icon{width:14px;height:14px;flex:none}.imp-client-service-identifier{color:#64748b}
.imp-client-service-status{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:999px;background:#ddf8e7;color:#087f3d;font-size:.8rem;font-weight:800}.imp-client-service-status .imp-icon{width:15px;height:15px}.imp-client-service-card.is-paused .imp-client-service-status,.imp-client-service-card.is-suspended .imp-client-service-status{background:#e6f0ff;color:#1769d2}.imp-client-service-card.is-cancelled .imp-client-service-status{background:#feecec;color:#b42318}
.imp-client-service-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:0 18px;border:1px solid #dce6f0;border-radius:10px;background:#fff}
.imp-client-service-facts>div{display:grid;grid-template-columns:auto minmax(0,1fr);gap:2px 11px;align-items:center;min-width:0;padding:13px 16px;border-right:1px solid #e1e8f0}.imp-client-service-facts>div:last-child{border-right:0}.imp-client-service-facts>div>span{grid-row:1/3;display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:#eff5fb;color:#164f91}.imp-client-service-facts .imp-icon{width:19px;height:19px}.imp-client-service-facts small{color:#6b7f97;font-size:.76rem}.imp-client-service-facts strong{min-width:0;color:#102f55;font-size:.89rem;line-height:1.3;overflow-wrap:anywhere}
.imp-client-service-next{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:center;margin:11px 18px 0;padding:11px 15px;border-radius:9px;background:linear-gradient(90deg,#eaf4ff,#f4f9ff);color:#164f91}.imp-client-service-next>span{display:grid;place-items:center}.imp-client-service-next .imp-icon{width:22px;height:22px}.imp-client-service-next strong{display:block;font-size:.82rem}.imp-client-service-next p{margin:2px 0 0;color:#58708e;font-size:.8rem;line-height:1.4}.imp-client-service-next a{display:inline-block;margin-top:5px;color:#0759a9;font-size:.78rem;font-weight:800;text-decoration:underline;text-underline-offset:2px}
.imp-client-service-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;padding:11px 18px 15px}.imp-client-service-actions a{display:flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:7px 12px;border:1px solid #9bc2f4;border-radius:8px;color:#0866d8;font-size:.82rem;font-weight:800;text-align:center;text-decoration:none}.imp-client-service-actions a:hover{background:#f0f7ff}.imp-client-service-actions .imp-icon{width:18px;height:18px;flex:none}
.imp-client-service-note{margin:7px 18px 15px;color:#71839a;font-size:.75rem}
.imp-service-continuity{display:block;margin-top:20px;border:1px solid #d4e0ec;border-radius:13px;background:#fff;box-shadow:0 6px 20px rgba(15,51,90,.04)}.imp-service-continuity>summary{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:13px;padding:16px 18px;cursor:pointer;list-style:none}.imp-service-continuity>summary::-webkit-details-marker{display:none}.imp-service-continuity>summary>span:first-child{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:#e8f1ff;color:#1769d2}.imp-service-continuity>summary .imp-icon{width:21px;height:21px}.imp-service-continuity>summary span:nth-child(2){display:grid;gap:3px}.imp-service-continuity>summary strong{color:#0b2b55;font-size:1rem}.imp-service-continuity>summary small{color:#64748b;font-size:.82rem}.imp-service-continuity>summary b{display:grid;place-items:center;min-width:30px;height:30px;border-radius:999px;background:#edf3f9;color:#35516f;font-size:.78rem}.imp-service-continuity>summary:after{content:'▾';grid-column:4;color:#1769d2;font-weight:900;transition:transform .18s ease}.imp-service-continuity:not([open])>summary:after{transform:rotate(-90deg)}.imp-service-continuity-body{padding:0 14px 14px;border-top:1px solid #e2eaf2}.imp-service-continuity-body .imp-contract-summary{scroll-margin-top:90px}

@media(max-width:900px){.imp-client-service-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.imp-client-service-facts>div:nth-child(2){border-right:0}.imp-client-service-facts>div:nth-child(-n+2){border-bottom:1px solid #e1e8f0}.imp-client-service-actions{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.imp-service-kpis{grid-template-columns:1fr}.imp-service-kpis article{min-height:76px}.imp-client-service-head{grid-template-columns:auto 1fr auto}.imp-client-service-status{grid-column:2;justify-self:start}.imp-client-service-head::after{grid-column:3;grid-row:1/3}.imp-client-service-facts{grid-template-columns:1fr}.imp-client-service-facts>div{border-right:0;border-bottom:1px solid #e1e8f0}.imp-client-service-facts>div:nth-child(3){border-bottom:1px solid #e1e8f0}.imp-client-service-facts>div:last-child{border-bottom:0}.imp-client-service-actions{grid-template-columns:1fr}.imp-service-continuity>summary{grid-template-columns:auto 1fr auto}.imp-service-continuity>summary:after{display:none}}
.imp-payment-group { margin:18px 0; }
.imp-payment-group > header { display:flex; align-items:flex-end; justify-content:space-between; gap:18px; margin:0 2px 9px; }
.imp-payment-group > header div { display:grid; gap:2px; }
.imp-payment-group > header span { color:#15803d; font-size:.72rem; font-weight:800; letter-spacing:.055em; text-transform:uppercase; }
.imp-payment-group > header h2 { margin:0; color:#0b2b55; font-size:1.05rem; }
.imp-payment-group > header small { color:#64748b; font-size:.78rem; text-align:right; }
.imp-payment-group-attention > header span { color:#b91c1c; }
.imp-payment-group .imp-panel { margin:0; }
.imp-payment-clear { display:flex; align-items:center; gap:12px; margin:16px 0; padding:14px 16px; border:1px solid #bbf7d0; border-radius:12px; background:#f0fdf4; color:#166534; }
.imp-payment-clear span { color:#3f6f51; font-size:.84rem; }
.imp-payment-history { margin:18px 0 0; border:1px solid #dce5f0; border-radius:12px; background:#fff; overflow:hidden; }
.imp-payment-history > summary { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:15px 17px; color:#0b2b55; cursor:pointer; list-style:none; }
.imp-payment-history > summary::-webkit-details-marker { display:none; }
.imp-payment-history > summary::before { content:'›'; flex:0 0 auto; color:#1976d2; font-size:1.35rem; font-weight:800; transform:rotate(0); transition:transform .18s ease; }
.imp-payment-history[open] > summary::before { transform:rotate(90deg); }
.imp-payment-history > summary span { display:grid; gap:2px; margin-right:auto; }
.imp-payment-history > summary small { color:#64748b; font-size:.76rem; font-weight:500; }
.imp-payment-history > summary b { display:grid; place-items:center; min-width:28px; height:28px; padding:0 8px; border-radius:999px; background:#eaf2fb; color:#174a87; font-size:.76rem; }
.imp-payment-history > .imp-panel { margin:0; border-width:1px 0 0; border-radius:0; box-shadow:none; }
.imp-payment-empty { margin-top:16px; color:#64748b; }

/* Mobile: turn client data tables into readable cards instead of horizontal scrolling. */
@media (max-width: 700px) {
	.imp-app .imp-payment-group > header { display:grid; gap:4px; }
	.imp-app .imp-payment-group > header small { text-align:left; }
	.imp-app .imp-payment-clear { display:grid; gap:3px; }
	.imp-app .imp-panel { padding:16px 14px; }
	.imp-app .imp-table-wrap { overflow:visible; margin:0; padding:0; }
	.imp-app .imp-service-table,
	.imp-app .imp-payments-table { display:block; min-width:0; border:0; background:transparent; }
	.imp-app .imp-service-table thead,
	.imp-app .imp-payments-table thead { display:none; }
	.imp-app .imp-service-table tbody,
	.imp-app .imp-payments-table tbody { display:grid; gap:12px; }
	.imp-app .imp-service-table tr,
	.imp-app .imp-payments-table tr { display:block; overflow:hidden; border:1px solid #dce5f0; border-radius:13px; background:#fff; }
	.imp-app .imp-payments-table .imp-payment-overdue { border-color:#fda4af; box-shadow:inset 4px 0 0 #dc2626; background:#fffafa; }
	.imp-app .imp-payments-table .imp-payment-pending { border-color:#fde68a; box-shadow:inset 4px 0 0 #d97706; }
	.imp-app .imp-service-table td,
	.imp-app .imp-payments-table td { display:grid; grid-template-columns:minmax(88px, .72fr) minmax(0, 1.28fr); gap:10px; align-items:start; min-width:0; padding:12px 14px; border:0; border-bottom:1px solid #edf2f7; text-align:right; }
	.imp-app .imp-service-table td::before,
	.imp-app .imp-payments-table td::before { color:#64748b; font-size:.68rem; font-weight:800; letter-spacing:.05em; line-height:1.3; text-align:left; text-transform:uppercase; }
	.imp-app .imp-service-table td:first-child,
	.imp-app .imp-payments-table td:first-child { display:block; background:#f8fafc; text-align:left; }
	.imp-app .imp-service-table td:first-child::before,
	.imp-app .imp-payments-table td:first-child::before { display:block; margin-bottom:5px; }
	.imp-app .imp-service-table td:last-child,
	.imp-app .imp-payments-table td:last-child { border-bottom:0; }
	.imp-app .imp-service-table td[colspan],
	.imp-app .imp-payments-table td[colspan] { display:block; text-align:center; }
	.imp-app .imp-service-table td[colspan]::before,
	.imp-app .imp-payments-table td[colspan]::before { display:none; }
	.imp-app .imp-service-table td:nth-child(1)::before { content:'Servicio'; }
	.imp-app .imp-service-table td:nth-child(2)::before { content:'Precio'; }
	.imp-app .imp-service-table td:nth-child(3)::before { content:'Periodicidad'; }
	.imp-app .imp-service-table td:nth-child(4)::before { content:'Inicio'; }
	.imp-app .imp-service-table td:nth-child(5)::before { content:'Recibo'; }
	.imp-app .imp-service-table td:nth-child(6)::before { content:'Entregable'; }
	.imp-app .imp-service-table td:nth-child(7)::before { content:'Estado'; }
	.imp-app .imp-payments-table td:nth-child(1)::before { content:'Concepto'; }
	.imp-app .imp-payments-table td:nth-child(2)::before { content:'Servicio'; }
	.imp-app .imp-payments-table td:nth-child(3)::before { content:'Desglose del pago'; }
	.imp-app .imp-payments-table td:nth-child(4)::before { content:attr(data-mobile-label); }
	.imp-app .imp-payments-table td:nth-child(5)::before { content:'Vence'; }
	.imp-app .imp-payments-table td:nth-child(6)::before { content:'Estado'; }
	.imp-app .imp-payments-table td:nth-child(7)::before { content:'Métodos de pago'; }
	.imp-app .imp-service-table .imp-service-details,
	.imp-app .imp-payments-table .imp-service-details,
	.imp-app .imp-payments-table .imp-payment-actions,
	.imp-app .imp-payments-table .imp-payment-form { width:100%; }
	.imp-app .imp-service-table .imp-file-actions { align-items:flex-end; }
	.imp-app .imp-payments-table .imp-payment-actions { display:grid; grid-template-columns:1fr; gap:8px; }
	.imp-app .imp-payments-table .imp-button { width:100%; justify-content:center; }
	.imp-app .imp-payment-summary { flex-direction:column; align-items:flex-start; gap:6px; margin-bottom:12px; }
	.imp-app .imp-followup-table { display:block; min-width:0; border:0; background:transparent; }
	.imp-app .imp-followup-table thead { display:none; }
	.imp-app .imp-followup-table tbody { display:grid; gap:12px; }
	.imp-app .imp-followup-table tr { display:block; overflow:hidden; border:1px solid #dce5f0; border-radius:13px; background:#fff; }
	.imp-app .imp-followup-table tr.imp-payment-overdue,.imp-app .imp-followup-table tr.imp-followup-overdue { border-color:#fda4af; box-shadow:inset 4px 0 0 #dc2626; background:#fffafa; }
	.imp-app .imp-followup-table tr.imp-followup-due-soon { border-color:#fed7aa; box-shadow:inset 4px 0 0 #f59e0b; background:#fffaf5; }
	.imp-app .imp-followup-table tr.imp-followup-upcoming { border-color:#bfdbfe; box-shadow:inset 4px 0 0 #2563eb; background:#f8fbff; }
	.imp-app .imp-followup-table td { display:grid; grid-template-columns:minmax(88px,.72fr) minmax(0,1.28fr); gap:10px; align-items:start; min-width:0; padding:12px 14px; border:0; border-bottom:1px solid #edf2f7; text-align:right; }
	.imp-app .imp-followup-table td::before { color:#64748b; font-size:.68rem; font-weight:800; letter-spacing:.05em; line-height:1.3; text-align:left; text-transform:uppercase; }
	.imp-app .imp-followup-table td:last-child { border-bottom:0; }
	.imp-app .imp-followup-table td[colspan] { display:block; text-align:center; }
	.imp-app .imp-followup-table td[colspan]::before { display:none; }
	.imp-app .imp-followup-table td:nth-child(1)::before { content:'Fecha límite'; }
	.imp-app .imp-followup-table td:nth-child(2)::before { content:'Cliente'; }
.imp-app .imp-followup-table td:nth-child(3)::before { content:'Datos de contacto'; }
.imp-app .imp-followup-table td:nth-child(4)::before { content:'Servicio'; }
.imp-app .imp-followup-table td:nth-child(5)::before { content:'Monto'; }
.imp-app .imp-followup-table td:nth-child(6)::before { content:'Estado'; }
.imp-app .imp-followup-table td:nth-child(7)::before { content:'Seguimiento'; }
	.imp-app .imp-followup-actions { justify-content:flex-end; }
	.imp-app .imp-document-tabs { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); overflow:visible; padding:0; }
	.imp-app .imp-document-tabs a { justify-content:space-between; min-width:0; white-space:normal; }
	.imp-app .imp-ticket-grid,
	.imp-app .imp-ticket-filters { grid-template-columns:1fr; }
	.imp-app .imp-ticket-form .imp-button,
	.imp-app .imp-ticket-filters .imp-button { width:100%; }
	.imp-app .imp-ticket-row { gap:10px; }
	.imp-app .imp-message { max-width:100%; }
}

@media (max-width: 380px) {
	.imp-app .imp-document-tabs { grid-template-columns:1fr; }
}
.imp-button-secondary { border:1px solid #93c5fd; background:#fff; color:#1d4ed8; }
.imp-button-secondary:hover,.imp-button-secondary:focus { color:#1d4ed8; background:#eff6ff; filter:none; }
.imp-transfer-sheet { display:grid; gap:20px; max-width:880px; padding:clamp(20px,3vw,32px); border:1px solid #d7e3f0; border-radius:16px; background:#fff; box-shadow:0 12px 30px rgba(15,45,80,.06); }
.imp-transfer-sheet > header { display:flex; justify-content:space-between; align-items:flex-start; gap:20px; padding-bottom:20px; border-bottom:1px solid #e5edf5; }
.imp-transfer-sheet h2 { margin:7px 0 6px; color:#0b2b55; font-size:1.35rem; }
.imp-transfer-sheet header p { margin:0; color:#64748b; }
.imp-transfer-sheet > header > strong { white-space:nowrap; color:#087b39; font-size:1.75rem; }
.imp-transfer-sheet > header > strong small { font-size:.68rem; }
.imp-transfer-eyebrow { color:#9a3412; font-size:.78rem; font-weight:800; text-transform:uppercase; letter-spacing:.04em; }
.imp-transfer-discount { padding:11px 13px; border:1px solid #bbf7d0; border-radius:10px; background:#f0fdf4; color:#166534; font-weight:700; }
.imp-transfer-details { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.imp-transfer-details > div { display:grid; gap:5px; min-width:0; padding:14px; border:1px solid #e2e8f0; border-radius:11px; background:#f8fafc; }
.imp-transfer-details span,.imp-transfer-reference span { color:#64748b; font-size:.78rem; font-weight:700; text-transform:uppercase; letter-spacing:.035em; }
.imp-transfer-details strong,.imp-transfer-details code { overflow-wrap:anywhere; color:#193455; font-size:.98rem; }
.imp-transfer-copy-value { display:flex; align-items:center; gap:8px; min-width:0; }
.imp-transfer-copy-value code { min-width:0; overflow-wrap:anywhere; }
.imp-transfer-copy-value button { flex:0 0 auto; padding:4px 7px; border:1px solid #bfdbfe; border-radius:6px; background:#fff; color:#2563eb; font:inherit; font-size:.76rem; font-weight:700; cursor:pointer; }
.imp-transfer-copy-value button:hover,.imp-transfer-copy-value button:focus { border-color:#2563eb; background:#eff6ff; }
.imp-transfer-reference { display:grid; gap:7px; padding:18px; border:1px solid #bfdbfe; border-radius:12px; background:#eff6ff; }
.imp-transfer-reference code { width:fit-content; max-width:100%; padding:8px 10px; border-radius:7px; background:#fff; color:#0b3b78; font-size:1.05rem; font-weight:800; overflow-wrap:anywhere; }
.imp-transfer-reference small { color:#47627e; }
.imp-transfer-instructions { padding:15px 16px; border-left:4px solid #2563eb; border-radius:0 10px 10px 0; background:#f8fbff; color:#334155; }
.imp-transfer-instructions p { margin:7px 0 0; line-height:1.55; }

.imp-ticket-area {
	padding: 0 clamp(16px, 4vw, 40px) 40px;
	background: var(--imp-bg);
	font-family: Inter, system-ui, -apple-system, "Segoe UI", sans-serif;
	color: var(--imp-text);
}

.imp-ticket-area,
.imp-ticket-area * { box-sizing: border-box; }
.imp-ticket-form { display: grid; gap: 16px; max-width: 850px; }
.imp-ticket-form label { display: grid; gap: 7px; font-weight: 700; }
.imp-ticket-form input,
.imp-ticket-form select,
.imp-ticket-form textarea { width: 100%; min-height: 44px; padding: 10px 12px; border: 1px solid #cbd5e1; border-radius: 8px; background: #fff; color: var(--imp-text); font: inherit; }
.imp-ticket-form textarea { min-height: 130px; resize: vertical; }
.imp-ticket-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.imp-ticket-form .imp-button { width: fit-content; border: 0; font: inherit; cursor: pointer; }
.imp-messages { display: grid; gap: 12px; margin: 20px 0; }
.imp-ticket-conversation-end { display:block; height:1px; scroll-margin-bottom:180px; }
.imp-ticket-form[aria-busy="true"] .imp-button { cursor:wait; opacity:.7; }
.imp-message { max-width: 82%; padding: 14px 16px; border: 1px solid #e2e8f0; border-radius: 12px; background: #fff; }
.imp-message-client { margin-left: auto; background: #eff6ff; border-color: #bfdbfe; }
.imp-message-support { margin-right: auto; background: #f8fafc; }
.imp-message-internal { max-width: 100%; background: #fef3c7; border-color: #f59e0b; }
.imp-message header { display: flex; justify-content: space-between; gap: 12px; color: #475569; font-size: .85rem; }
.imp-message p { margin: 8px 0 0; white-space: normal; overflow-wrap: anywhere; }
.imp-attachments { display:grid; gap:7px; margin-top:12px; padding-top:10px; border-top:1px solid rgba(148,163,184,.45); }
.imp-attachments a { display:flex; align-items:center; gap:5px; width:fit-content; max-width:100%; font-weight:700; overflow-wrap:anywhere; }
.imp-attachments small { color:#64748b; font-weight:500; }
.imp-ticket-form input[type="file"] { padding:8px; background:#f8fafc; }
.imp-ticket-form label > small { color:#64748b; font-weight:400; }
.imp-timeline-panel { margin-top:20px; }
.imp-timeline-panel > summary { display:flex; align-items:center; justify-content:space-between; gap:16px; cursor:pointer; list-style:none; font-size:1.1rem; font-weight:800; }
.imp-timeline-panel > summary::-webkit-details-marker { display:none; }
.imp-timeline-panel > summary::after { content:"+"; display:grid; place-items:center; flex:0 0 28px; width:28px; height:28px; border-radius:50%; background:#e2e8f0; color:#334155; font-size:1.25rem; line-height:1; }
.imp-timeline-panel[open] > summary::after { content:"−"; }
.imp-timeline-panel > summary small { margin-left:auto; color:#64748b; font-size:.82rem; font-weight:600; }
.imp-timeline-body { margin-top:16px; padding-top:14px; border-top:1px solid #e2e8f0; }
.imp-timeline { position:relative; display:grid; gap:0; margin:0; padding:0; list-style:none; }
.imp-timeline::before { content:""; position:absolute; top:10px; bottom:10px; left:7px; width:2px; background:#dbe3ee; }
.imp-timeline-event { position:relative; display:grid; grid-template-columns:18px minmax(0,1fr); gap:10px; padding:9px 0; }
.imp-timeline-dot { position:relative; z-index:1; width:16px; height:16px; margin-top:2px; border:3px solid #bfdbfe; border-radius:50%; background:var(--imp-blue); }
.imp-timeline-event > div { display:grid; gap:3px; }
.imp-timeline-event small { color:#64748b; }
.imp-timeline-event.is-internal .imp-timeline-dot { border-color:#fde68a; background:#f59e0b; }
.imp-conversation > .imp-ticket-form { margin-top: 20px; }
.imp-ticket-open-link { display: inline-flex; margin-top: 5px; font-weight: 700; }
.imp-ticket-area .imp-table td:first-child a { display: inline-flex; flex-direction: column; font-weight: 700; }
.imp-ticket-area .imp-table td:first-child a::after { content: "Ver conversación abajo"; margin-top: 4px; font-size: .78rem; font-weight: 700; text-decoration: underline; }
.imp-ticket-conversations { padding-top: 0; }
.imp-ticket-accordion { display: grid; gap: 12px; }
.imp-ticket-detail { overflow: hidden; border: 1px solid #dbe3ee; border-radius: 12px; background: #fff; }
.imp-ticket-detail summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 16px 18px; cursor: pointer; list-style-position: inside; }
.imp-ticket-detail summary > span:first-of-type { display: grid; gap: 4px; min-width: 0; }
.imp-ticket-detail summary small { color: #64748b; }
.imp-ticket-detail[open] summary { border-bottom: 1px solid #e2e8f0; background: #f8fafc; }
.imp-ticket-detail-body { padding: 18px; }
.imp-ticket-meta { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; margin: 0; }
.imp-ticket-meta div { padding: 10px; border-radius: 8px; background: #f8fafc; }
.imp-ticket-meta dt { color: #64748b; font-size: .78rem; font-weight: 700; text-transform: uppercase; }
.imp-ticket-meta dd { margin: 4px 0 0; }
.imp-app { min-height: 78vh; }
.imp-app .imp-content { min-height: 78vh; }
.imp-page-head { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; margin-bottom:24px; }
.imp-page-head h1 { margin-bottom:6px; }
.imp-page-head p { margin:0; color:#64748b; }
.imp-page-head-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:10px; }
.imp-transfer-paid-button { display:inline-flex; align-items:center; justify-content:center; gap:8px; white-space:nowrap; }
.imp-transfer-paid-button .imp-icon { width:18px; height:18px; }
.imp-ticket-list { display:grid; gap:10px; }
.imp-ticket-row { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:16px; border:1px solid #e2e8f0; border-radius:10px; color:var(--imp-text); text-decoration:none; }
.imp-ticket-row:hover { border-color:var(--imp-blue); background:#f8fafc; }
.imp-ticket-row > span:first-child { display:grid; gap:5px; min-width:0; }
.imp-ticket-row small { color:#64748b; }
.imp-ticket-row.is-unread { border-color:#93c5fd; background:#eff6ff; box-shadow:inset 3px 0 0 var(--imp-blue); }
.imp-ticket-row.needs-attention { border-color:#fdba74; background:#fff7ed; box-shadow:inset 4px 0 0 #ea580c; }
.imp-ticket-row.needs-attention.is-unread { box-shadow:inset 4px 0 0 #ea580c; }
.imp-attention-badge { display:inline-flex; padding:4px 8px; border-radius:999px; background:#ffedd5; color:#9a3412; font-size:.75rem; font-weight:800; white-space:nowrap; }
.imp-card-attention { border-color:#fed7aa !important; background:#fff7ed !important; }
.imp-card-attention span { color:#c2410c; }
.imp-cards article small { color:#64748b; font-size:.78rem; font-weight:600; line-height:1.4; }
.imp-followup-panel > header { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; margin-bottom:14px; }
.imp-followup-panel > header h2 { margin:0; color:#18314f; font-size:1.05rem; }
.imp-followup-panel > header p { margin:4px 0 0; color:#64748b; font-size:.84rem; }
.imp-followup-table td strong,.imp-followup-table td small { display:block; }
.imp-followup-table td small { margin-top:4px; color:#64748b; font-size:.78rem; }
.imp-followup-actions { display:flex; flex-wrap:wrap; gap:8px; }
.imp-followup-actions a { display:inline-flex; align-items:center; min-height:32px; padding:6px 9px; border:1px solid #cbd8e8; border-radius:8px; color:#174a87; font-size:.8rem; font-weight:750; text-decoration:none; }
.imp-followup-actions a:hover { border-color:#2563eb; background:#eff6ff; }
.imp-followup-month { display:flex; align-items:end; gap:8px; }
.imp-followup-month label { display:grid; gap:5px; color:#475569; font-size:.78rem; font-weight:750; }
.imp-followup-month input { min-height:36px; padding:6px 8px; border:1px solid #cbd8e8; border-radius:8px; font:inherit; }
.imp-followup-month .imp-button { min-height:36px; padding:7px 10px; }
.imp-followup-priority { display:inline-flex; padding:5px 8px; border-radius:999px; font-size:.74rem; font-weight:800; white-space:nowrap; }
.imp-followup-priority.is-upcoming { background:#dbeafe; color:#1d4ed8; }
.imp-followup-priority.is-due-soon { background:#ffedd5; color:#b45309; }
.imp-followup-priority.is-overdue { background:#fee2e2; color:#b91c1c; }
.imp-grace-note,.imp-followup-last { display:block; margin-top:6px; color:#64748b; font-size:.73rem; line-height:1.35; }
.imp-grace-note { color:#b91c1c; font-weight:700; }
.imp-followup-log { margin-top:9px; }
.imp-followup-log summary { color:#174a87; font-size:.78rem; font-weight:750; cursor:pointer; }
.imp-followup-log form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin-top:10px; padding:10px; border:1px solid #dce5f0; border-radius:9px; background:#f8fafc; }
.imp-followup-log label { display:grid; gap:4px; color:#475569; font-size:.74rem; font-weight:700; }
.imp-followup-log label:nth-of-type(3),.imp-followup-log button { grid-column:1/-1; }
.imp-followup-log select,.imp-followup-log textarea { width:100%; min-width:0; padding:7px 8px; border:1px solid #cbd8e8; border-radius:7px; background:#fff; color:#18314f; font:inherit; font-size:.8rem; }
.imp-followup-log textarea { min-height:64px; resize:vertical; }
.imp-followup-history { margin-top:9px; text-align:left; }
.imp-followup-history > summary { display:flex; align-items:center; gap:7px; color:#174a87; font-size:.78rem; font-weight:750; cursor:pointer; }
.imp-followup-history-count { display:inline-grid; place-items:center; min-width:20px; height:20px; padding:0 6px; border-radius:999px; background:var(--imp-blue); color:#fff; font-size:.68rem; }
.imp-followup-history ol { display:grid; gap:8px; margin:9px 0 0; padding:0; list-style:none; }
.imp-followup-history li { min-width:0; padding:9px; border:1px solid #dce5f0; border-radius:8px; background:#f8fafc; }
.imp-followup-history-head { display:flex; flex-wrap:wrap; justify-content:space-between; gap:4px 10px; color:#18314f; font-size:.75rem; }
.imp-followup-history time,.imp-followup-history small { color:#64748b; font-size:.7rem; }
.imp-followup-history li p { margin:6px 0 0; color:#334155; font-size:.76rem; line-height:1.4; white-space:normal; }
.imp-ticket-main { position:relative; }
.imp-unread-dot { position:absolute; left:-9px; top:6px; width:7px; height:7px; border-radius:50%; background:var(--imp-blue); }
.imp-ticket-side { display:flex; align-items:center; justify-content:flex-end; gap:10px; }
.imp-nav-count { display:inline-grid; place-items:center; min-width:22px; height:22px; margin-left:auto; padding:0 6px; border-radius:999px; background:#fff; color:var(--imp-navy); font-size:.72rem; }
.imp-ticket-filters { display:grid; grid-template-columns:minmax(190px,1.5fr) repeat(3,minmax(135px,1fr)); align-items:end; gap:12px; margin-bottom:16px; }
.imp-ticket-filters label { display:grid; gap:6px; color:#475569; font-size:.82rem; font-weight:700; }
.imp-ticket-filters input[type="search"],
.imp-ticket-filters select { width:100%; min-height:42px; padding:9px 11px; border:1px solid #cbd5e1; border-radius:8px; background:#fff; color:var(--imp-text); font:inherit; }
.imp-ticket-filters .imp-filter-check { display:flex; align-items:center; min-height:40px; flex-direction:row; gap:8px; }
.imp-filter-check input { width:17px; height:17px; }
.imp-filter-clear { align-self:center; font-weight:700; }
.imp-ticket-results { margin:4px 0 14px; color:#64748b; font-size:.9rem; }
.imp-pagination { display:flex; flex-wrap:wrap; justify-content:center; gap:7px; margin-top:20px; }
.imp-pagination a { display:grid; place-items:center; min-width:38px; height:38px; border:1px solid #cbd5e1; border-radius:8px; color:var(--imp-text); text-decoration:none; }
.imp-pagination a.active { border-color:var(--imp-blue); background:var(--imp-blue); color:#fff; }
.imp-back { display:inline-flex; margin-bottom:12px; font-weight:700; }
.imp-conversation { scroll-margin-top: 20px; }
.imp-ticket-form .imp-check { display: flex; grid-template-columns: auto 1fr; align-items: center; font-weight: 400; }
.imp-ticket-form .imp-check input { width: 18px; min-height: 18px; }

@media (max-width: 1024px) {
	.imp-ticket-filters { grid-template-columns:repeat(2,minmax(0,1fr)); }
	.imp-shell {
		grid-template-columns: 210px minmax(0, 1fr);
	}

	.imp-cards {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 760px) {
	.imp-shell {
		display: block;
		min-height: 0;
	}

	.imp-sidebar {
		min-height: auto;
		padding: 18px 16px;
	}

	.imp-sidebar .imp-brand {
		margin-bottom: 16px;
	}

	.imp-sidebar nav {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.imp-sidebar nav a,
	.imp-sidebar nav span {
		justify-content: center;
		padding: 10px;
		text-align: center;
	}

	.imp-logout {
		margin-top: 14px;
	}

	.imp-content {
		padding: 24px 16px 36px;
	}

	.imp-cards {
		grid-template-columns: 1fr;
		gap: 12px;
		margin-top: 22px;
	}

	.imp-cards article {
		grid-template-columns: minmax(0, 1fr) auto;
		align-items: center;
		padding: 18px;
	}

	.imp-panel {
		margin-top: 20px;
		padding: 18px 14px;
	}

	.imp-table-wrap {
		margin-right: -14px;
		padding-right: 14px;
	}
	.imp-ticket-area { padding: 0 16px 32px; }
	.imp-ticket-side { align-items:flex-end; flex-direction:column; }
}

@media (max-width: 480px) {
	.imp-auth {
		min-height: 100dvh;
		padding: 16px 12px;
		place-items: center;
	}

	.imp-auth-card {
		padding: 24px 18px;
		border-radius: 12px;
	}

	.imp-auth-card .imp-brand {
		margin-bottom: 22px;
	}

	.imp-sidebar nav {
		grid-template-columns: 1fr 1fr;
		gap: 6px;
	}

	.imp-sidebar nav a,
	.imp-sidebar nav span {
		font-size: .9rem;
	}

	.imp-content {
		padding-inline: 12px;
	}

	.imp-panel {
		padding-inline: 12px;
	}

	.imp-table-wrap {
		margin-right: -12px;
		padding-right: 12px;
	}

	.imp-table {
		min-width: 600px;
	}
	.imp-ticket-grid { grid-template-columns: 1fr; }
	.imp-message { max-width: 94%; }
	.imp-ticket-detail summary { align-items: flex-start; padding: 14px; }
	.imp-ticket-detail-body { padding: 14px; }
	.imp-ticket-meta { grid-template-columns: 1fr; }
	.imp-page-head { align-items:stretch; flex-direction:column; }
	.imp-page-head .imp-button { width:100%; }
	.imp-page-head-actions { display:grid; width:100%; }
	.imp-ticket-area { padding-inline: 12px; }
	.imp-ticket-form .imp-button { width: 100%; }
	.imp-ticket-filters { grid-template-columns:1fr; }
	.imp-ticket-filters .imp-button { width:100%; }
	.imp-ticket-row { align-items:flex-start; }
}

@media (prefers-reduced-motion: reduce) {
	.imp-auth *,
	.imp-shell * {
		scroll-behavior: auto !important;
		transition: none !important;
	}
}

/* Application shell v2 */
.imp-portal-page #main-header,
.imp-portal-page #top-header,
.imp-portal-page .et-l--header,
.imp-portal-page .et-l--footer,
.imp-portal-page #main-footer,
.imp-portal-page .entry-title,
.imp-portal-page .et_post_meta_wrapper,
.imp-portal-page > header,
.imp-portal-page > footer { display:none !important; }
/* Divi draws its desktop sidebar divider with .container::before. Portal
 * pages own the complete viewport, so the theme column and its divider must
 * be removed together on every client/staff screen. */
.imp-portal-page #main-content > .container::before,
.imp-portal-page #main-content .container::before { display:none !important; content:none !important; }
.imp-portal-page #sidebar { display:none !important; }
.imp-portal-page,
.imp-portal-page #page-container,
.imp-portal-page #et-main-area,
.imp-portal-page #main-content,
.imp-portal-page #main-content > .container,
.imp-portal-page #left-area,
.imp-portal-page .et_pb_section,
.imp-portal-page .et_pb_row,
.imp-portal-page .et_pb_column,
.imp-portal-page .et_pb_module,
.imp-portal-page .et_pb_code_inner,
.imp-portal-page .entry-content { margin:0 !important; padding:0 !important; width:100% !important; max-width:none !important; min-height:100%; }
.imp-portal-page { background:#f5f8fc; overflow-x:hidden; }
.imp-portal-page #page-container,
.imp-portal-page #et-main-area,
.imp-portal-page #main-content { overflow:visible !important; }
.imp-icon { flex:0 0 24px; width:24px; height:24px; }
.imp-shell.imp-app { display:grid; grid-template-columns:280px minmax(0,1fr); width:100% !important; max-width:none !important; min-height:100dvh; margin:0 !important; background:#f5f8fc; }
.imp-app .imp-sidebar { position:sticky; top:0; z-index:60; height:100dvh; min-height:100dvh; padding:20px; background:linear-gradient(165deg,#062a5b 0%,#073b77 55%,#052552 100%); box-shadow:10px 0 30px rgba(15,23,42,.08); }
.imp-app .imp-brand { min-height:54px; margin:0 -2px 26px; padding:0 4px 18px; border-bottom:1px solid rgba(255,255,255,.14); }
.imp-app .imp-brand span { flex-basis:46px; width:46px; height:46px; background:var(--imp-blue); box-shadow:0 8px 20px rgba(0,0,0,.2); }
.imp-app .imp-brand small { color:#fff; font-size:.9rem; line-height:1.35; }
.imp-app .imp-sidebar nav { grid-template-columns:1fr; gap:7px; }
.imp-app .imp-sidebar nav a { justify-content:flex-start; gap:13px; min-height:50px; padding:12px 14px; border-left:4px solid transparent; border-radius:10px; color:#eaf2ff; font-size:.96rem; text-align:left; transition:background .18s ease,border-color .18s ease,transform .18s ease; }
.imp-app .imp-sidebar nav a:hover { background:rgba(255,255,255,.09); transform:translateX(2px); }
.imp-app .imp-sidebar nav a.active { border-left-color:#22c55e; background:linear-gradient(90deg,rgba(37,99,235,.3),rgba(255,255,255,.08)); box-shadow:inset 0 0 0 1px rgba(255,255,255,.04); }
.imp-app .imp-sidebar nav .imp-drive-nav.is-disabled { opacity:.62; cursor:not-allowed; }
.imp-app .imp-sidebar nav a > span { display:block; min-height:0; padding:0; color:inherit; line-height:1.3; text-align:left; }
.imp-sidebar-help { display:grid; gap:9px; margin-top:auto; padding:18px; border:1px solid rgba(147,197,253,.3); border-radius:14px; background:linear-gradient(145deg,rgba(59,130,246,.16),rgba(255,255,255,.05)); color:#fff; }
.imp-sidebar-help .imp-help-icon { display:grid; place-items:center; width:40px; height:40px; border-radius:50%; background:rgba(255,255,255,.12); color:#93c5fd; }
.imp-sidebar-help p { margin:0; color:#dbeafe; font-size:.85rem; line-height:1.5; }
.imp-sidebar-help a { min-height:40px; padding:9px 12px; border:1px solid #93c5fd; border-radius:8px; color:#fff; text-align:center; text-decoration:none; font-weight:700; }
.imp-sidebar-footer { display:grid; gap:5px; margin-top:18px; padding-top:14px; border-top:1px solid rgba(255,255,255,.14); }
.imp-sidebar-footer a { display:flex; align-items:center; gap:12px; min-height:44px; padding:9px 12px; color:#eaf2ff; text-decoration:none; }
.imp-sidebar-footer a.active { border-radius:9px; background:rgba(255,255,255,.1); }
.imp-sidebar-footer .imp-logout { margin:0; }
.imp-app-main { min-width:0; min-height:100dvh; }
.imp-topbar { position:sticky; top:0; z-index:40; display:flex; align-items:center; min-height:72px; padding:0 clamp(20px,3vw,42px); border-bottom:1px solid #e2e8f0; background:rgba(255,255,255,.94); box-shadow:0 4px 18px rgba(15,23,42,.04); backdrop-filter:blur(12px); }
.imp-nav-toggle { display:none; place-items:center; width:44px; height:44px; margin-right:14px; padding:0; border:0; border-radius:9px; background:transparent; color:#12345d; cursor:pointer; }
.imp-topbar-brand { display:grid; gap:2px; }
.imp-topbar-brand strong { color:#0b2b55; font-size:.9rem; }
.imp-topbar-brand small { color:#64748b; }
.imp-topbar-actions { display:flex; align-items:center; gap:18px; margin-left:auto; }
.imp-topbar-actions a { color:#385273; text-decoration:none; }
.imp-topbar-icon { position:relative; display:grid; place-items:center; width:42px; height:42px; border-radius:50%; }
.imp-topbar-icon:hover { background:#eff6ff; }
.imp-topbar-icon b { position:absolute; top:1px; right:0; display:flex; align-items:center; justify-content:center; min-width:19px; height:19px; padding:0 5px; border:2px solid #fff; border-radius:999px; background:#16a34a; color:#fff; font-size:.68rem; line-height:1; text-align:center; }
.imp-topbar-help { display:flex; align-items:center; gap:7px; }
.imp-user-chip { display:flex; align-items:center; gap:9px; color:#152b4a; font-weight:700; }
.imp-user-chip > b { display:grid; place-items:center; width:40px; height:40px; border-radius:50%; background:#0b3b78; color:#fff; }
.imp-user-chip > span { max-width:180px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.imp-app .imp-content { width:100%; max-width:1540px; min-height:calc(100dvh - 72px); margin:0 auto; padding:clamp(28px,3vw,48px); }
.imp-app .imp-page-head { margin-bottom:26px; }
.imp-app .imp-page-head h1 { color:#0b2b55; font-size:clamp(1.65rem,2.5vw,2.2rem); letter-spacing:-.025em; }
.imp-app .imp-cards { grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; margin-top:22px; }
.imp-app .imp-cards article,
.imp-app .imp-panel { border-color:#dce5f0; box-shadow:0 8px 24px rgba(15,45,80,.045); }
.imp-app .imp-cards article { min-height:126px; padding:18px !important; }
.imp-app .imp-cards article span { color:#0b2b55; font-size:1.75rem; }
.imp-app .imp-panel { padding:20px; }
.imp-app .imp-message { padding:12px 14px; }
.imp-app .imp-ticket-row { padding:14px; }
.imp-service-details { margin-top: 8px; }
.imp-contract-package,
.imp-contract-identifier { display:block; margin-top:4px; color:#64748b; font-size:.82rem; line-height:1.35; }
.imp-contract-identifier { color:#2563eb; font-weight:600; }
.imp-service-payment-link { display:inline-grid; gap:3px; padding:7px 9px; border:1px solid #fcd34d; border-radius:8px; background:#fffbeb; color:#92400e; text-decoration:none; line-height:1.25; }
.imp-service-payment-link:hover { border-color:#f59e0b; background:#fef3c7; color:#78350f; }
.imp-service-payment-link strong { font-size:.8rem; }
.imp-service-payment-link small { color:inherit; font-size:.74rem; font-weight:700; }
.imp-service-details > summary { width: fit-content; cursor: pointer; color: var(--imp-blue); font-size: .82rem; font-weight: 700; }
.imp-service-details > summary:hover { text-decoration: underline; }
.imp-service-details > p { margin: 9px 0 7px; color: #475569; line-height: 1.5; }
.imp-service-details > ul { display: grid; gap: 4px; margin: 7px 0 0 18px; padding: 0; color: #334155; font-size: .86rem; }
.imp-app .imp-ticket-detail summary { padding:14px 16px; }
.imp-app .imp-ticket-detail-body { padding:16px; }
.imp-deliverable-pending { color:#64748b; font-size:.9rem; font-weight:700; }
.imp-empty-state { grid-column:1/-1; text-align:center; }
.imp-dashboard-layout { display:grid; grid-template-columns:minmax(0,1fr) 286px; gap:24px; align-items:start; }
.imp-dashboard-main { display:grid; gap:24px; min-width:0; }
.imp-kpi-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; }
.imp-kpi-card { position:relative; display:grid; grid-template-columns:auto 1fr; gap:9px 11px; min-width:0; min-height:170px; padding:18px; border:1px solid #dce5f0; border-radius:14px; background:#fff; color:#142b4a; text-decoration:none; box-shadow:0 8px 24px rgba(15,45,80,.045); transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease; }
.imp-kpi-card:hover { transform:translateY(-2px); border-color:#b9cce5; box-shadow:0 12px 28px rgba(15,45,80,.09); }
.imp-kpi-icon { display:grid; place-items:center; width:42px; height:42px; border-radius:50%; background:#dcfce7; color:#15803d; }
.imp-kpi-icon-blue { background:#dbeafe; color:#2563eb; }
.imp-kpi-icon-purple { background:#ede9fe; color:#7c3aed; }
.imp-kpi-icon-orange { background:#ffedd5; color:#ea580c; }
.imp-kpi-label { align-self:center; min-width:0; font-size:.86rem; font-weight:800; line-height:1.3; }
.imp-kpi-card > strong { grid-column:1/-1; color:#0b2b55; font-size:1.65rem; line-height:1.15; }
.imp-kpi-card > strong small { color:inherit; font-size:.68rem; }
.imp-kpi-card > small { grid-column:1/-1; align-self:end; color:#64748b; line-height:1.35; }
.imp-kpi-card > i { position:absolute; right:12px; bottom:13px; color:#71829a; }
.imp-kpi-card > i .imp-icon { width:18px; height:18px; }
.imp-kpi-payments > strong { color:#15803d; }
.imp-kpi-tickets > strong { color:#ea580c; }
.imp-focus-alert { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:18px; min-width:0; padding:20px; border:1px solid #fdba74; border-radius:14px; background:linear-gradient(100deg,#fff7ed,#fff); color:#18314f; text-decoration:none; }
.imp-focus-icon { display:grid; place-items:center; width:54px; height:54px; border:1px solid #fdba74; border-radius:50%; color:#ea580c; }
.imp-focus-alert > span:nth-child(2) { display:grid; gap:4px; min-width:0; }
.imp-focus-alert small { color:#ea580c; font-weight:800; }
.imp-focus-alert strong { overflow-wrap:anywhere; font-size:1rem; }
.imp-focus-alert span span { color:#64748b; font-size:.86rem; }
.imp-focus-alert > b { padding:10px 14px; border-radius:9px; background:#f97316; color:#fff; white-space:nowrap; }
.imp-focus-ok { border-color:#bbf7d0; background:linear-gradient(100deg,#f0fdf4,#fff); }
.imp-focus-ok .imp-focus-icon { border-color:#86efac; color:#16a34a; }
.imp-focus-ok small { color:#15803d; }
.imp-service-summary-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.imp-dashboard-panel,.imp-quick-actions,.imp-advisor-card { padding:18px; border:1px solid #dce5f0; border-radius:14px; background:#fff; box-shadow:0 8px 24px rgba(15,45,80,.045); }
.imp-dashboard-panel { display:grid; grid-template-rows:auto 1fr auto; min-height:330px; }
.imp-dashboard-panel > header { display:flex; justify-content:space-between; gap:12px; padding-bottom:14px; border-bottom:1px solid #e7edf5; }
.imp-dashboard-panel h2,.imp-quick-actions h2 { margin:0; color:#0b2b55; font-size:1rem; }
.imp-dashboard-panel header p { margin:3px 0 0; color:#64748b; font-size:.8rem; }
.imp-dashboard-panel header a { color:var(--imp-blue); font-size:.82rem; font-weight:800; text-decoration:none; }
.imp-service-summary-list { display:grid; align-content:start; }
.imp-service-summary-list > div { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:11px; padding:14px 0; border-bottom:1px solid #edf1f6; }
.imp-service-summary-list > div:last-child { border-bottom:0; }
.imp-service-summary-list > p { padding:20px 0; }
.imp-service-summary-list > div > span:nth-child(2) { display:grid; gap:3px; min-width:0; }
.imp-service-summary-list strong { overflow:hidden; color:#18314f; font-size:.86rem; text-overflow:ellipsis; white-space:nowrap; }
.imp-service-summary-list small { color:#64748b; font-size:.78rem; }
.imp-service-summary-icon { display:grid; place-items:center; width:38px; height:38px; border-radius:50%; background:#dbeafe; color:#2563eb; }
.imp-service-summary-icon .imp-icon { width:20px; height:20px; }
.imp-panel-action { align-self:end; display:flex; justify-content:center; margin-top:14px; padding:10px; border:1px solid #d7e0ec; border-radius:9px; color:var(--imp-blue); text-decoration:none; font-weight:800; }
.imp-dashboard-side { position:sticky; top:96px; display:grid; gap:18px; }
.imp-quick-actions { display:grid; gap:8px; }
.imp-quick-actions h2 { margin-bottom:8px; }
.imp-quick-actions > a { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:10px; min-height:46px; padding:9px 10px; border:1px solid #e1e8f1; border-radius:9px; color:#18314f; font-size:.86rem; font-weight:750; text-decoration:none; }
.imp-quick-actions > a:hover { border-color:#b9cce5; background:#f8fbff; }
.imp-quick-actions > a > span { display:grid; place-items:center; width:30px; height:30px; border-radius:50%; background:#eef6ff; color:var(--imp-blue); }
.imp-quick-actions .imp-icon { width:18px; height:18px; }
.imp-quick-actions > a > i { color:#71829a; }
.imp-advisor-card { display:grid; gap:14px; }
.imp-advisor-card h2 { margin:0; color:#0b2b55; font-size:1rem; }
.imp-advisor-person { display:flex; align-items:center; gap:11px; }
.imp-advisor-person > span { display:grid; place-items:center; flex:0 0 48px; width:48px; height:48px; border-radius:50%; background:#dbeafe; color:#1d4ed8; font-weight:800; }
.imp-advisor-person > div { display:grid; gap:3px; min-width:0; }
.imp-advisor-person strong { overflow-wrap:anywhere; color:#18314f; }
.imp-advisor-person small { color:#64748b; }
.imp-advisor-email { display:flex; align-items:center; gap:8px; min-width:0; color:var(--imp-blue); font-size:.82rem; overflow-wrap:anywhere; text-decoration:none; }
.imp-advisor-email .imp-icon { flex:0 0 18px; width:18px; height:18px; }
.imp-advisor-button { display:flex; justify-content:center; padding:10px 12px; border:1px solid var(--imp-blue); border-radius:9px; color:var(--imp-blue); text-align:center; text-decoration:none; font-weight:800; }
.imp-whatsapp-button { align-items:center; gap:8px; border-color:#16a34a !important; background:#16a34a; color:#fff !important; }
.imp-whatsapp-button:hover { border-color:#15803d !important; background:#15803d; color:#fff !important; }
.imp-whatsapp-button .imp-icon { width:18px; height:18px; }
.imp-quick-actions > a.imp-whatsapp-action > span { background:#dcfce7; color:#15803d; }
.imp-sidebar-help a.imp-whatsapp-button { display:flex; justify-content:center; border-color:#4ade80 !important; }
.imp-account-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.imp-account-card { min-width:0; padding:20px; border:1px solid #dce5f0; border-radius:14px; background:#fff; box-shadow:0 8px 24px rgba(15,45,80,.045); }
.imp-account-card > header { display:flex; align-items:flex-start; gap:12px; padding-bottom:16px; border-bottom:1px solid #e7edf5; }
.imp-account-card > header > span { display:grid; place-items:center; flex:0 0 42px; width:42px; height:42px; border-radius:11px; background:#eef6ff; color:var(--imp-blue); }
.imp-account-card h2 { margin:0; color:#0b2b55; font-size:1.05rem; }
.imp-account-card header p { margin:4px 0 0; color:#64748b; font-size:.83rem; line-height:1.4; }
.imp-account-card dl { display:grid; margin:8px 0 0; }
.imp-account-card dl > div { display:grid; grid-template-columns:minmax(110px,.7fr) minmax(0,1.3fr); gap:14px; padding:11px 0; border-bottom:1px solid #edf1f6; }
.imp-account-card dl > div:last-child { border-bottom:0; }
.imp-account-card dt { color:#64748b; font-size:.84rem; }
.imp-account-card dd { margin:0; color:#18314f; font-size:.86rem; font-weight:700; overflow-wrap:anywhere; text-align:right; }
.imp-account-clients,.imp-password-card { grid-column:1/-1; }
.imp-account-advisor { display:grid; align-content:start; gap:15px; }
.imp-account-advisor > a:not(.imp-advisor-button) { color:var(--imp-blue); overflow-wrap:anywhere; }
.imp-password-card .imp-ticket-form { grid-template-columns:repeat(3,minmax(0,1fr)); max-width:none; margin-top:18px; }
.imp-password-card .imp-ticket-form .imp-button { grid-column:1; }
.imp-button-secondary { border:1px solid #cbd5e1; background:#fff; color:#18314f; }
.imp-document-tabs { display:flex; gap:8px; margin-bottom:18px; overflow-x:auto; padding-bottom:3px; }
.imp-document-tabs a { display:flex; align-items:center; gap:8px; min-height:40px; padding:8px 13px; border:1px solid #dce5f0; border-radius:999px; background:#fff; color:#53657c; text-decoration:none; font-weight:750; white-space:nowrap; }
.imp-document-tabs a.active { border-color:var(--imp-blue); background:#eff6ff; color:var(--imp-blue); }
.imp-document-tabs a span { display:grid; place-items:center; min-width:22px; height:22px; padding:0 6px; border-radius:999px; background:#e7edf5; font-size:.72rem; }
.imp-documents-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.imp-document-card { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:14px; min-width:0; padding:16px; border:1px solid #dce5f0; border-radius:13px; background:#fff; box-shadow:0 7px 20px rgba(15,45,80,.04); }
.imp-document-icon { display:grid; place-items:center; width:46px; height:46px; border-radius:12px; background:#ede9fe; color:#7c3aed; }
.imp-document-card > div { min-width:0; }
.imp-document-card small { color:#64748b; font-size:.7rem; font-weight:800; letter-spacing:.04em; }
.imp-document-card h2 { margin:3px 0 4px; overflow:hidden; color:#18314f; font-size:.95rem; text-overflow:ellipsis; white-space:nowrap; }
.imp-document-card p { margin:0; color:#64748b; font-size:.8rem; overflow-wrap:anywhere; }
.imp-document-card .imp-button { white-space:nowrap; }
.imp-document-library { min-width:0; padding:18px; border:1px solid #dce5f0; border-radius:16px; background:#fff; box-shadow:0 8px 24px rgba(15,45,80,.04); }
.imp-document-search { display:flex; align-items:center; gap:10px; margin-bottom:16px; }
.imp-document-search label { position:relative; display:flex; align-items:center; flex:1; min-width:160px; }
.imp-document-search label > .imp-icon { position:absolute; left:13px; width:18px; height:18px; color:#71829a; pointer-events:none; }
.imp-document-search input { width:100%; min-height:42px; padding:9px 13px 9px 40px; border:1px solid #cfd9e6; border-radius:10px; background:#f8fafc; color:#18314f; font:inherit; }
.imp-document-search input:focus { outline:2px solid color-mix(in srgb,var(--imp-blue) 25%,transparent); border-color:var(--imp-blue); background:#fff; }
.imp-document-search > a { color:var(--imp-blue); font-size:.84rem; font-weight:750; text-decoration:none; }
.imp-document-list { display:grid; gap:10px; }
.imp-document-row { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:15px; min-width:0; padding:16px; border:1px solid #e0e7f0; border-radius:13px; background:#fff; transition:border-color .18s ease,box-shadow .18s ease; }
.imp-document-row.is-system { border-left:4px solid #16a34a; }
.imp-document-row.is-uploaded { border-left:4px solid #94a3b8; }
.imp-document-row.is-sat { border-left:4px solid #0756b8; box-shadow:0 5px 17px rgba(7,86,184,.08); }
.imp-document-kind { padding:3px 8px; border-radius:999px; background:#eef2f7; color:#596a80; font-size:.66rem; font-weight:800; letter-spacing:.025em; }
.imp-document-row.is-system .imp-document-kind { background:#dcfce7; color:#166534; }
.imp-document-row.is-sat .imp-document-kind { background:#dbeafe; color:#074b9a; }
.imp-document-row:hover { border-color:#bdcbe0; box-shadow:0 6px 18px rgba(15,45,80,.055); }
.imp-document-copy { display:grid; gap:4px; min-width:0; }
.imp-document-meta { display:flex; align-items:center; flex-wrap:wrap; gap:8px 12px; color:#71829a; font-size:.72rem; }
.imp-document-meta > span { color:var(--imp-blue); font-weight:850; letter-spacing:.045em; text-transform:uppercase; }
.imp-document-copy h2 { margin:0; color:#18314f; font-size:1rem; line-height:1.35; overflow-wrap:anywhere; }
.imp-document-copy > p { margin:0; color:#53657c; font-size:.84rem; line-height:1.45; overflow-wrap:anywhere; }
.imp-document-details { display:flex; flex-wrap:wrap; gap:5px 16px; margin-top:3px; color:#8290a3; font-size:.75rem; }
.imp-document-details span + span { position:relative; }
.imp-document-details span + span::before { position:absolute; left:-9px; content:'·'; }
.imp-document-row > .imp-button { white-space:nowrap; }
.imp-document-list > .imp-empty-state { display:grid; justify-items:center; gap:8px; padding:46px 20px; text-align:center; }
.imp-document-list > .imp-empty-state > span { display:grid; place-items:center; width:54px; height:54px; border-radius:14px; background:#eef6ff; color:var(--imp-blue); }
.imp-document-list > .imp-empty-state h2,.imp-document-list > .imp-empty-state p { margin:0; }
.imp-notification-list { display:grid; gap:10px; }
.imp-notification-item { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:14px; min-width:0; padding:15px 16px; border:1px solid #dce5f0; border-radius:12px; background:#fff; }
.imp-notification-item.is-unread { border-color:#93c5fd; background:#f8fbff; box-shadow:inset 4px 0 0 var(--imp-blue); }
.imp-notification-item.is-warning { border-color:#fdba74; background:#fffaf5; box-shadow:inset 4px 0 0 #ea580c; }
.imp-notification-icon { display:grid; place-items:center; width:42px; height:42px; border-radius:50%; background:#eef6ff; color:var(--imp-blue); }
.imp-notification-item.is-warning .imp-notification-icon { background:#ffedd5; color:#ea580c; }
.imp-notification-item > a { display:grid; gap:3px; min-width:0; color:#18314f; text-decoration:none; }
.imp-notification-item > a strong,.imp-notification-item > a span { overflow-wrap:anywhere; }
.imp-notification-item > a span { color:#53657c; font-size:.86rem; }
.imp-notification-item > a small { color:#8290a3; font-size:.76rem; }
.imp-notification-item form button { padding:7px 9px; border:1px solid #cbd5e1; border-radius:8px; background:#fff; color:#385273; cursor:pointer; font-weight:700; }
.imp-notification-read { color:#94a3b8; font-size:.8rem; }
.imp-sidebar-overlay { display:none; }

@media (max-width:1180px) {
	.imp-shell.imp-app { grid-template-columns:238px minmax(0,1fr); }
	.imp-app .imp-sidebar { padding:18px 14px; }
	.imp-app .imp-cards { grid-template-columns:repeat(2,minmax(0,1fr)); }
	.imp-sidebar-help { padding:14px; }
	.imp-dashboard-layout { grid-template-columns:1fr; }
	.imp-kpi-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
	.imp-quick-actions { position:static; grid-template-columns:repeat(2,minmax(0,1fr)); }
	.imp-dashboard-side { position:static; }
	.imp-quick-actions h2 { grid-column:1/-1; }
}

@media (max-width:900px) {
	.imp-shell.imp-app { display:block; }
	.imp-app .imp-sidebar { position:fixed; left:0; top:0; width:min(300px,86vw); height:100dvh; min-height:100dvh; transform:translateX(-105%); transition:transform .22s ease; }
	.imp-nav-open .imp-app .imp-sidebar { transform:translateX(0); }
	.imp-sidebar-overlay { position:fixed; inset:0; z-index:55; display:block; visibility:hidden; border:0; background:rgba(2,18,40,.5); opacity:0; transition:opacity .2s ease,visibility .2s ease; }
	.imp-nav-open .imp-sidebar-overlay { visibility:visible; opacity:1; }
	.imp-nav-open { overflow:hidden; }
	.imp-nav-toggle { display:grid; }
	.imp-topbar { min-height:64px; padding:0 18px; }
	.imp-app .imp-content { min-height:calc(100dvh - 64px); padding:28px 20px 42px; }
	.imp-sidebar-help { margin-top:auto; }
}

@media (max-width:600px) {
	.imp-topbar { padding:0 12px; }
	.imp-topbar-brand small,
	.imp-topbar-help,
	.imp-user-chip > span { display:none; }
	.imp-topbar-actions { gap:6px; }
	.imp-user-chip > b { width:36px; height:36px; }
	.imp-app .imp-content { padding:22px 14px 34px; }
	.imp-app .imp-page-head { gap:12px; margin-bottom:20px; }
	.imp-app .imp-cards { grid-template-columns:1fr 1fr; gap:10px; }
	.imp-app .imp-sidebar nav { grid-template-columns:1fr; }
	.imp-app .imp-sidebar nav a { justify-content:flex-start; text-align:left; }
	.imp-app .imp-sidebar nav a > span { text-align:left; }
	.imp-app .imp-cards article { display:grid; grid-template-columns:1fr; align-content:space-between; min-height:108px; padding:14px !important; }
	.imp-app .imp-cards article strong { font-size:.82rem; }
	.imp-app .imp-cards article span { font-size:1.5rem; }
	.imp-app .imp-panel { padding:16px; border-radius:12px; }
	.imp-app .imp-message { padding:11px 12px; }
	.imp-app .imp-ticket-row { padding:12px; }
	.imp-service-details > summary { font-size: .8rem; }
	.imp-app .imp-ticket-detail summary,
	.imp-app .imp-ticket-detail-body { padding:12px; }
	.imp-service-summary-grid { grid-template-columns:1fr; }
	.imp-quick-actions { grid-template-columns:1fr; }
	.imp-focus-alert { grid-template-columns:auto minmax(0,1fr); gap:12px; padding:15px; }
	.imp-focus-alert > b { grid-column:1/-1; text-align:center; }
	.imp-service-summary-list > div { grid-template-columns:auto minmax(0,1fr); }
	.imp-service-summary-list > div > .imp-badge { grid-column:2; justify-self:start; }
	.imp-account-grid { grid-template-columns:1fr; }
	.imp-account-clients,.imp-password-card { grid-column:auto; }
	.imp-account-card { padding:16px; }
	.imp-account-card dl > div { grid-template-columns:1fr; gap:4px; }
	.imp-account-card dd { text-align:left; }
	.imp-password-card .imp-ticket-form { grid-template-columns:1fr; }
	.imp-password-card .imp-ticket-form .imp-button { grid-column:auto; }
	.imp-documents-grid { grid-template-columns:1fr; }
	.imp-document-card { grid-template-columns:auto minmax(0,1fr); padding:14px; }
	.imp-document-card .imp-button,.imp-document-card > .imp-muted { grid-column:1/-1; width:100%; text-align:center; }
	.imp-document-library { padding:12px; border-radius:13px; }
	.imp-document-search { align-items:stretch; flex-wrap:wrap; }
	.imp-document-search label { flex-basis:100%; }
	.imp-document-search .imp-button { flex:1; }
	.imp-document-search > a { display:flex; align-items:center; padding:0 8px; }
	.imp-document-tabs { margin-bottom:14px; }
	.imp-document-row { grid-template-columns:auto minmax(0,1fr); align-items:start; gap:11px; padding:13px; }
	.imp-document-row > .imp-button,.imp-document-row > .imp-file-actions,.imp-document-row > .imp-muted { grid-column:1/-1; width:100%; text-align:center; }
	.imp-document-row > .imp-file-actions { display:grid; grid-template-columns:1fr; }
	.imp-document-row > .imp-file-actions .imp-button { width:100%; justify-content:center; }
	.imp-payment-actions { display:grid; grid-template-columns:1fr; }
	.imp-payment-actions .imp-button { width:100%; }
	.imp-transfer-sheet { padding:18px; border-radius:13px; }
	.imp-transfer-sheet > header { display:grid; gap:12px; }
	.imp-transfer-sheet > header > strong { font-size:1.45rem; }
	.imp-transfer-details { grid-template-columns:1fr; }
	.imp-transfer-copy-value { align-items:flex-start; flex-direction:column; gap:6px; }
	.imp-document-icon { width:42px; height:42px; }
	.imp-document-meta { display:grid; gap:3px; }
	.imp-notification-item { grid-template-columns:auto minmax(0,1fr); padding:13px; }
	.imp-notification-item form,.imp-notification-read { grid-column:2; justify-self:start; }
}

@media (max-width:380px) {
	.imp-app .imp-cards { grid-template-columns:1fr; }
	.imp-kpi-grid { grid-template-columns:1fr; }
}
.imp-original-price{text-decoration:line-through;color:#64748b;font-size:.86rem}.imp-discount-price{color:#15803d;white-space:nowrap}.imp-discount-note{display:block;margin-top:4px;color:#15803d;font-weight:700;white-space:nowrap}

/* Compact contract summaries and unbroken financial dates. */
.imp-contract-summary{margin:12px 0;border:1px solid #cad9e8;border-radius:10px;background:#fff;padding:14px 16px}
.imp-contract-summary>summary{cursor:pointer;display:flex;flex-wrap:wrap;align-items:center;gap:8px 18px;list-style:disclosure-closed}
.imp-contract-summary>summary strong{flex:1 1 230px;overflow-wrap:anywhere}
.imp-contract-summary>summary span{font-size:.85rem}
.imp-summary-hint{color:#12603c;text-decoration:underline}
.imp-contract-summary[open]>.imp-summary-hint{display:none}
.imp-price-breakdown{display:flex;flex-direction:column;gap:5px}
.imp-contract-costs{padding:12px 0;font-size:.85rem}
.imp-contract-costs ul{padding:0;list-style:none}
.imp-contract-costs li{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 12px;padding:6px 0;border-bottom:1px solid #e5edf4}
.imp-contract-costs li span{flex:1 1 140px}
.imp-contract-costs li b{white-space:nowrap}
.imp-renewal-card{margin-top:16px;padding:14px 16px;border:1px solid #d8e4ef;border-left:4px solid var(--imp-blue);border-radius:10px;background:#f8fbfe;box-shadow:0 5px 14px rgba(15,45,75,.06);color:#17324d}
.imp-renewal-card>header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 12px;padding:0 0 10px;border-bottom:1px solid #dce8f2}
.imp-renewal-card>header>div{display:grid;gap:2px}.imp-renewal-card>header strong{font-size:.94rem;color:#102f4f}
.imp-renewal-eyebrow{font-size:.69rem;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:var(--imp-blue)}
.imp-renewal-card dl{display:grid;gap:9px;margin:0}.imp-renewal-card dl>div{display:grid;grid-template-columns:minmax(110px,.65fr) minmax(150px,1fr);gap:14px;align-items:start}
.imp-renewal-card dt{color:#60778d;font-size:.78rem}.imp-renewal-card dd{margin:0;font-weight:750;line-height:1.45;overflow-wrap:anywhere}
.imp-renewal-card>p{margin:11px 0 0;padding-top:10px;border-top:1px dashed #d4e1ec;color:#60778d;font-size:.76rem;line-height:1.45}
.imp-renewal-card.is-current{background:#f4f9fd;border-left-color:#145b96}
@media(max-width:560px){.imp-renewal-card>header{align-items:flex-start;flex-direction:column}.imp-renewal-card dl>div{grid-template-columns:1fr;gap:2px}}
.imp-app .imp-payments-table td.imp-payment-due,.imp-app .imp-payments-table th:nth-child(5){min-width:112px}
.imp-payment-due time{white-space:nowrap;overflow-wrap:normal;word-break:normal;font-variant-numeric:tabular-nums}
@media(max-width:767px){.imp-contract-summary>summary{align-items:flex-start;flex-direction:column}.imp-contract-summary>summary strong{flex:auto}.imp-app .imp-payments-table td:nth-child(2) .imp-service-details{grid-column:1/-1;text-align:left}}

@media(max-width:767px){
 .imp-app .imp-payments-table td:nth-child(2)>strong,.imp-app .imp-payments-table td:nth-child(2)>small{grid-column:2;min-width:0}
}
.imp-contract-summary>summary::before{content:'▸';color:#12603c}
.imp-contract-summary[open]>summary::before{content:'▾'}

/* Keep each monetary value (including its sign and currency) indivisible. */
.imp-price-breakdown .imp-price-line{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 8px;margin:0;line-height:1.5}
.imp-price-line>span:first-child{overflow-wrap:normal;word-break:normal}
.imp-price-breakdown .imp-financial-value{display:inline-block;white-space:nowrap;overflow-wrap:normal;word-break:normal;font-variant-numeric:tabular-nums}
.imp-price-breakdown .imp-price-deadline{margin-top:4px;color:#52647b}
@media(min-width:768px){
 .imp-app .imp-payments-table{min-width:850px}
 .imp-app .imp-payments-table th:nth-child(3),.imp-app .imp-payments-table td:nth-child(3){min-width:165px}
 .imp-app .imp-payments-table th:nth-child(4),.imp-app .imp-payments-table td:nth-child(4){min-width:140px}
}
@media(max-width:767px){
 .imp-app .imp-payments-table td:nth-child(3){text-align:right}
 .imp-app .imp-payments-table .imp-price-line{justify-content:space-between}
}

.imp-payment-breakdown-details{min-width:0}
.imp-payment-breakdown-details>summary{display:inline-flex;align-items:center;gap:7px;padding:7px 10px;border:1px solid #cbdbea;border-radius:8px;background:#f8fbfe;color:#145b96;font-size:.78rem;font-weight:800;cursor:pointer;list-style:none;white-space:nowrap}
.imp-payment-breakdown-details>summary::-webkit-details-marker{display:none}
.imp-payment-breakdown-details>summary::before{content:'▸';font-size:.72rem;transition:transform .16s ease}
.imp-payment-breakdown-details[open]>summary::before{transform:rotate(90deg)}
.imp-payment-breakdown-details>div{margin-top:10px;padding:10px;border:1px solid #dce7f0;border-radius:9px;background:#f8fafc;min-width:210px}
.imp-payment-total strong{color:#0b2b55;font-size:.96rem;line-height:1.4}
@media(max-width:700px){
 .imp-app .imp-payments-table td[data-mobile-label]::before{content:attr(data-mobile-label)}
 .imp-app .imp-payments-table .imp-payment-breakdown-cell{display:block;text-align:left}
 .imp-app .imp-payments-table .imp-payment-breakdown-cell::before{display:block;margin-bottom:8px}
 .imp-app .imp-payments-table .imp-payment-breakdown-details{display:block;width:100%;max-width:none;text-align:left}
 .imp-app .imp-payments-table .imp-payment-breakdown-details>summary{box-sizing:border-box;justify-content:flex-start;width:100%}
 .imp-app .imp-payments-table .imp-payment-breakdown-details>div{box-sizing:border-box;width:100%;min-width:0}
 .imp-app .imp-payments-table .imp-payment-total{align-items:center}
}

/* Shared Drive access: one link per folder, service labels instead of URLs. */
.imp-drive-dialog{box-sizing:border-box;width:min(560px,calc(100% - 32px));max-height:85dvh;padding:24px;border:1px solid #dce4ee;border-radius:16px;color:#12365a;background:#fff;overflow:auto}
.imp-drive-dialog::backdrop{background:rgba(8,30,60,.55)}
.imp-drive-dialog h2{font-size:21px;margin:0 0 10px}.imp-drive-dialog p{font-size:14px}.imp-drive-folder-list article{padding:16px 0;border-top:1px solid #e0e8f0;display:flex;gap:16px;align-items:center;justify-content:space-between}.imp-drive-folder-list ul{list-style:none;margin:0;padding:0;min-width:0}.imp-drive-folder-list li{overflow-wrap:anywhere;margin:4px 0}.imp-drive-folder-list a{flex-shrink:0}.imp-drive-dialog form{margin-top:20px}.imp-drive-documents svg{width:18px;height:18px}.imp-drive-documents{gap:8px}.imp-drive-nav span{white-space:normal}.imp-drive-quick>svg{width:20px;height:20px;flex-shrink:0}
@media(max-width:520px){.imp-drive-folder-list article{align-items:flex-start;flex-direction:column}.imp-drive-dialog{padding:18px}.imp-drive-documents{margin-top:12px}}
.imp-quick-actions>a.imp-drive-quick>span{display:block;width:auto;height:auto;border-radius:0;background:transparent;color:inherit;min-width:0;overflow-wrap:anywhere}.imp-drive-dialog .screen-reader-text{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.imp-drive-dialog{font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.imp-drive-dialog button{font:inherit;cursor:pointer}
.imp-manage-payment{display:flex!important;justify-content:center;margin:10px 0;width:100%;box-sizing:border-box}
.imp-billing-payment>header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid #dce7f2}
.imp-billing-payment>header h2{margin:0 0 4px}.imp-billing-payment>header p{margin:0;color:#64748b}
.imp-billing-payment-summary{display:grid;grid-template-columns:minmax(260px,1.2fr) minmax(220px,.8fr);gap:24px;margin-bottom:22px;padding:18px;border:1px solid #d9e5f0;border-radius:12px;background:#f8fbff}
.imp-billing-payment-summary dl{display:grid;align-content:start;gap:10px;margin:0}.imp-billing-payment-summary dl>div{display:flex;justify-content:space-between;gap:18px;padding-bottom:9px;border-bottom:1px solid #dce7f0}.imp-billing-payment-summary dt{color:#60758b}.imp-billing-payment-summary dd{margin:0;text-align:right;font-weight:750}
.imp-billing-payment-form{display:grid;gap:16px}.imp-billing-payment-form .imp-check{align-self:end;min-height:42px;display:flex;align-items:center;gap:8px}
.imp-billing-payment-form .imp-locked-field input:disabled{border-color:#c8d2df!important;background:#e8edf3!important;color:#536476!important;box-shadow:none!important;cursor:not-allowed;opacity:1;-webkit-text-fill-color:#536476}.imp-billing-payment-form .imp-locked-field small{display:block;margin-top:7px;color:#536476}.imp-billing-payment-form .imp-locked-field small strong{color:#243b53}
.imp-billing-access{padding:0!important;overflow:hidden}.imp-billing-access>summary{display:flex;align-items:center;gap:12px;padding:18px 22px;cursor:pointer;list-style:none;background:#f8fbff}.imp-billing-access>summary::-webkit-details-marker{display:none}.imp-billing-access>summary:before{content:'›';font-size:24px;font-weight:800;color:var(--imp-primary);transition:transform .2s}.imp-billing-access[open]>summary:before{transform:rotate(90deg)}.imp-billing-access>summary span{display:grid;gap:3px}.imp-billing-access>summary small{color:#64748b;font-weight:400}.imp-billing-access-body{padding:20px 22px}.imp-billing-access .imp-ticket-form{max-width:none}.imp-access-table{min-width:900px}.imp-access-table input{width:100%;min-width:110px}.imp-access-table th:nth-child(5),.imp-access-table td:nth-child(5){min-width:170px}.imp-access-table .imp-check{display:flex;align-items:flex-start;gap:7px;font-weight:600}.imp-access-table .imp-check input{width:auto;min-width:0;margin-top:2px}.imp-access-actions{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;margin-top:18px}
@media(max-width:700px){.imp-billing-payment-summary{grid-template-columns:1fr}.imp-billing-payment>header{align-items:flex-start;flex-direction:column}.imp-billing-payment-form .imp-ticket-grid{grid-template-columns:1fr}}
.imp-service-financial-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;margin:14px 0;padding:12px 16px;border:1px solid var(--imp-border,#d6e1ef);border-radius:10px;background:#f8fbff}.imp-service-financial-summary>div{display:flex;justify-content:space-between;gap:16px;padding:7px 10px;border-bottom:1px solid #e3eaf3}.imp-service-financial-summary dt{color:#52647b}.imp-service-financial-summary dd{margin:0;text-align:right;color:#0b315f}@media(max-width:700px){.imp-service-financial-summary{grid-template-columns:1fr}.imp-service-financial-summary>div{padding-inline:0}}
.imp-error-page{min-height:100vh;display:grid;place-items:center;padding:24px;background:#f3f7fc}.imp-error-page section{width:min(100%,620px);padding:44px;border:1px solid #d7e2ef;border-radius:18px;background:#fff;box-shadow:0 18px 48px rgba(17,48,84,.1);text-align:center}.imp-error-code{display:inline-grid;place-items:center;min-width:74px;height:42px;padding:0 14px;border-radius:999px;background:color-mix(in srgb,var(--imp-blue,#2563eb) 12%,white);color:var(--imp-blue,#2563eb);font-size:22px;font-weight:800}.imp-error-brand{margin:18px 0 6px;color:#5c7089}.imp-error-page h1{margin:0 0 12px;color:#0b315f}.imp-error-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:24px}
.imp-auto-filters{margin:14px 0;padding:12px 16px;border:1px solid #dce4ec;border-radius:10px;background:#fff}.imp-auto-filters>summary{color:var(--imp-blue);cursor:pointer;font-weight:800}.imp-auto-filters>form{margin-top:14px}.imp-filter-count{display:inline-grid;place-items:center;min-width:20px;height:20px;margin-left:7px;padding:0 6px;border-radius:999px;background:var(--imp-blue);color:#fff;font-size:.72rem}
.imp-document-uploader{margin-bottom:20px}.imp-document-uploader>summary{cursor:pointer;color:var(--imp-blue);font-weight:700;list-style:none}.imp-document-uploader>summary::before{content:'+';display:inline-grid;place-items:center;width:24px;height:24px;margin-right:9px;border-radius:50%;background:var(--imp-blue);color:#fff}.imp-document-uploader[open]>summary::before{content:'−'}.imp-document-uploader>form{margin-top:20px}.imp-payment-editor-section{padding:16px;border:1px solid #dbe5f1;border-radius:12px;background:#f8fbff}.imp-payment-editor-section h3{margin:0 0 12px;color:#12365f}.imp-payment-editor-section fieldset{padding:0;border:0;margin:0}.imp-payment-editor-section fieldset:disabled{opacity:.7}.imp-payment-editor-section [data-payment-live]{max-width:520px}

/* Fiscal file and shared access registry stay usable on narrow viewports. */
.imp-client-tax-certificate{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px;margin-bottom:20px}.imp-tax-certificate-copy{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:13px}.imp-tax-certificate-copy h2,.imp-tax-certificate-copy p{margin:0}.imp-tax-certificate-copy p{margin-top:4px;color:#64748b;line-height:1.5}.imp-tax-certificate-copy small{display:block;margin-top:7px;color:#52647b;overflow-wrap:anywhere}.imp-client-tax-certificate>form{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:12px;padding-top:15px;border-top:1px solid #e1e9f2}.imp-client-tax-certificate>form label{display:grid;gap:6px;font-weight:700}.imp-client-tax-certificate>form input[type=file]{max-width:100%}.imp-client-tax-certificate>form small{color:#64748b;font-weight:400}
@media(max-width:700px){.imp-billing-access-body{padding:14px}.imp-billing-access .imp-table-wrap{overflow:visible!important}.imp-billing-access .imp-access-table{display:block;min-width:0}.imp-billing-access .imp-access-table thead{display:none}.imp-billing-access .imp-access-table tbody{display:grid;gap:12px}.imp-billing-access .imp-access-table tr{display:grid;gap:10px;padding:14px;border:1px solid #dce5f0;border-radius:12px;background:#fff}.imp-billing-access .imp-access-table td{display:grid;gap:5px;padding:0;border:0}.imp-billing-access .imp-access-table td:before{color:#64748b;font-size:.68rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.imp-billing-access .imp-access-table td:nth-child(1):before{content:'Servicio o plataforma'}.imp-billing-access .imp-access-table td:nth-child(2):before{content:'URL'}.imp-billing-access .imp-access-table td:nth-child(3):before{content:'Usuario'}.imp-billing-access .imp-access-table td:nth-child(4):before{content:'Contraseña'}.imp-billing-access .imp-access-table td:nth-child(5):before{content:'Visibilidad en PDF'}.imp-billing-access .imp-access-table td:nth-child(6):before{content:'Acción'}.imp-billing-access .imp-access-table input{min-width:0}.imp-access-actions{display:grid}.imp-access-actions .imp-button{width:100%;justify-content:center}.imp-client-tax-certificate{grid-template-columns:1fr}.imp-client-tax-certificate>.imp-file-actions{display:grid;grid-template-columns:1fr}.imp-client-tax-certificate>.imp-file-actions .imp-button{width:100%;justify-content:center}.imp-client-tax-certificate>form{grid-template-columns:1fr}.imp-client-tax-certificate>form .imp-button{width:100%;justify-content:center}}


/* Action results stay visible when returning to a payment row. */
.imp-app .imp-action-feedback{position:fixed;right:20px;bottom:20px;z-index:10000;width:min(440px,calc(100vw - 40px));max-height:45vh;overflow:auto;box-sizing:border-box;margin:0;padding:16px;background:#f0fdf4;color:#14532d;border:1px solid #86efac;border-radius:10px;box-shadow:0 8px 28px rgba(15,23,42,.2)}
.imp-app .imp-action-feedback.imp-alert-error{background:#fef2f2;color:#991b1b;border-color:#fca5a5}
.imp-app .imp-action-feedback.imp-alert-warning{background:#fffbeb;color:#92400e;border-color:#fcd34d}
.imp-app .imp-action-feedback [data-imp-feedback-close]{float:right;margin:0 0 8px 12px;padding:4px 8px;font:inherit;color:inherit;background:transparent;border:1px solid currentColor;border-radius:5px;cursor:pointer}
.imp-app .imp-action-feedback p{margin:0;line-height:1.5}
/* Optional fiscal certificate: collapsed by default, controls only on disclosure. */
.imp-app .imp-tax-optional{display:block;padding:14px 18px}
.imp-tax-optional>summary{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 16px;cursor:pointer;list-style:none}
.imp-tax-optional>summary::-webkit-details-marker{display:none}
.imp-tax-optional>summary:focus-visible{outline:2px solid #0756b8;outline-offset:5px;border-radius:4px}
.imp-tax-optional-heading{font-weight:700;color:#18314f}
.imp-tax-optional-heading small{font-weight:400;color:#64748b}
.imp-tax-optional-description{grid-column:1;font-size:.82rem;color:#64748b}
.imp-tax-optional-state{grid-column:1;font-size:.78rem;color:#0756b8}
.imp-tax-optional-action{grid-column:2;grid-row:1/4;align-self:center;font-size:.82rem;font-weight:600;color:#0756b8}
.imp-tax-optional-action::after{content:' ＋'}
.imp-tax-optional[open] .imp-tax-optional-action::after{content:' −'}
.imp-tax-optional-body{margin-top:14px;padding-top:14px;border-top:1px solid #e1e9f2}
.imp-tax-optional-body>.imp-file-actions{margin-bottom:12px}
.imp-tax-optional-body>form{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:12px}
.imp-tax-optional-body label{display:grid;gap:6px;font-size:.85rem;font-weight:600}
.imp-tax-optional-body input[type=file]{width:100%;min-width:0}
.imp-tax-optional-body small{font-weight:400;color:#64748b}
@media(max-width:600px){.imp-tax-optional>summary,.imp-tax-optional-body>form{grid-template-columns:1fr}.imp-tax-optional-action{grid-column:1;grid-row:auto;margin-top:6px}.imp-tax-optional-body>form .imp-button{width:100%}}
/* Client document search and categories share one collapsed disclosure. */
.imp-client-document-filters{margin:0 0 16px;border:1px solid #dce5f0;border-radius:10px;padding:12px 14px;min-width:0}
.imp-client-document-filters>summary{cursor:pointer;color:var(--imp-blue);font-weight:700}
.imp-client-document-filters>summary small{font-weight:400;color:#64748b}
.imp-client-document-filters[open]>summary{margin-bottom:14px}
.imp-client-document-filters .imp-document-search{min-width:0}
.imp-client-document-filters .imp-document-tabs{display:flex;flex-wrap:wrap;overflow:visible;gap:8px;margin-bottom:0}
.imp-client-document-filters .imp-document-tabs a{max-width:100%;white-space:normal;overflow-wrap:anywhere}
@media(max-width:600px){.imp-client-document-filters{padding:12px}.imp-client-document-filters .imp-document-search label{min-width:0}.imp-client-document-filters .imp-document-tabs a{font-size:.78rem}}
.imp-app [data-imp-menu-count][hidden]{display:none}

/* Simple controls belong exclusively to the client portal. */
.imp-app .imp-client-quick-filters{margin:0 0 20px;padding:16px;background:#fff;border:1px solid #e0e7f0;border-radius:13px}
.imp-app .imp-client-quick-bar{display:flex;align-items:flex-start;flex-wrap:wrap;gap:12px;justify-content:space-between}
.imp-app .imp-client-quick-bar nav{display:flex;flex-wrap:wrap;gap:8px;min-width:0}
.imp-app .imp-client-quick-bar nav a{display:inline-flex;align-items:center;gap:8px;border:1px solid #dbe3ed;border-radius:999px;padding:8px 12px;color:#475569;background:#fff;text-decoration:none;font-size:13px;font-weight:600}
.imp-app .imp-client-quick-bar nav a span{padding:1px 6px;border-radius:999px;background:#f1f5f9;min-width:18px;text-align:center}
.imp-app .imp-client-quick-bar nav a.is-active{border-color:var(--imp-blue,#2563eb);color:var(--imp-blue,#2563eb);background:#eff6ff}
.imp-app .imp-client-date-filter{flex:0 1 380px;max-width:100%;min-width:0}
.imp-app .imp-client-date-filter summary{cursor:pointer;padding:9px 0;color:var(--imp-blue,#2563eb);font-size:13px;font-weight:600}
.imp-app .imp-client-date-filter form{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;margin:12px 0 0}
.imp-app .imp-client-date-filter label{display:flex;flex-direction:column;gap:6px;flex:1 1 140px;min-width:0;font-size:13px}
.imp-app .imp-client-date-filter input{box-sizing:border-box;width:100%;min-width:0;padding:9px;border:1px solid #cbd5e1;border-radius:8px;background:#fff}
.imp-app .imp-client-date-filter form>a{font-size:13px;padding:10px 0}
.imp-app .imp-client-quick-summary{margin:12px 0 0;color:#64748b;font-size:12px;line-height:1.6}
.imp-app .imp-client-quick-summary a{margin-left:8px;white-space:nowrap}
.imp-app .imp-client-quick-bar a:focus-visible,.imp-app .imp-client-date-filter summary:focus-visible{outline:2px solid var(--imp-blue,#2563eb);outline-offset:3px}
@media(max-width:700px){.imp-app .imp-client-date-filter{flex-basis:100%}.imp-app .imp-client-quick-filters{padding:14px}.imp-app .imp-client-quick-bar nav a{padding:8px 10px}}

/* Password recovery shares the login layout at every viewport. */
.imp-auth-links{margin:20px 0 0;text-align:center;line-height:1.8}.imp-auth-help{font-size:.875rem;color:var(--imp-muted,#64748b)}.imp-auth-card button.imp-recovery-toggle{background:transparent;color:var(--imp-blue);border:1px solid #cbd5e1;margin-bottom:12px;box-shadow:none}.imp-recovery-card .imp-alert{overflow-wrap:anywhere}@media(max-width:480px){.imp-auth-card{padding:24px 20px}.imp-auth-links a{display:inline-block;padding:4px 0}}
