.ethicax-cp-wrap{
	max-width:1100px;
	margin:0 auto;
	padding:12px;
	font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif
}

.ethicax-cp-card{
	background:#fff;
	border:1px solid #e5e7eb;
	border-radius:14px;
	padding:14px;
	margin-bottom:12px
}

.ethicax-cp-tabs{
	display:flex;
	gap:8px;
	flex-wrap:wrap;
	margin-bottom:10px
}

.ethicax-cp-tab{
	padding:8px 12px;
	border:1px solid #e5e7eb;
	border-radius:999px;
	text-decoration:none
}

.ethicax-cp-tab.is-active{
	font-weight:800;
	background:#f9fafb
}

.ethicax-cp-grid{
	display:grid;
	grid-template-columns:1.05fr .95fr;
	gap:12px
}

@media(max-width:900px){
	.ethicax-cp-grid{grid-template-columns:1fr}
}

.ethicax-cp-tablewrap{
	border:1px solid #eef2f7;
	border-radius:12px;
	overflow:auto;
	background:#fff
}

.ethicax-cp-tablewrap table{
	min-width:980px;
	border-collapse:separate;
	border-spacing:0
}

.ethicax-cp-muted{
	color:#6b7280;
	font-size:13px;
	line-height:1.65
}

.ethicax-cp-pill{
	display:inline-flex;
	align-items:center;
	padding:4px 10px;
	border-radius:999px;
	font-weight:800;
	font-size:12px;
	border:1px solid #e5e7eb
}

.ethicax-cp-kv{
	display:grid;
	grid-template-columns:160px 1fr;
	gap:8px;
	font-size:14px
}

.ethicax-cp-kv div{
	padding:6px 0;
	border-bottom:1px dashed #eef2f7
}

.ethicax-cp-photo{
	display:inline-block;
	margin:6px 6px 0 0;
	border:1px solid #e5e7eb;
	border-radius:10px;
	overflow:hidden
}

.ethicax-cp-photo img{
	display:block;
	max-width:140px;
	height:auto
}

.ethicax-cp-actions{
	display:flex;
	gap:8px;
	flex-wrap:wrap;
	margin-top:10px;
	align-items:center
}

.ethicax-cp-actions .button{
	min-height:46px;
	border-radius:10px;
	font-weight:800
}

.ethicax-cp-section{
	margin-top:14px;
	padding-top:14px;
	border-top:1px solid #eef2f7
}

.ethicax-inst-suggest{
	display:none;
	margin-top:8px;
	border:1px solid #d1d5db;
	border-radius:12px;
	background:#fff;
	max-height:240px;
	overflow:auto;
	box-shadow:0 10px 30px rgba(0,0,0,.08)
}

.ethicax-inst-item{
	padding:10px 12px;
	border-bottom:1px solid #f3f4f6;
	cursor:pointer;
	font-size:14px;
	font-weight:600;
	color:#111827
}

.ethicax-inst-item:hover{
	background:#f3f4f6
}

/* forward selected institution helper */
.ethicax-cp-selected-inst,
[id^="cpForwardInstSelectedName-"]{
	display:block;
	min-height:20px;
	font-size:13px;
	font-weight:700;
	color:#065f46;
	margin-top:2px
}

/* =========================================================
 * EMERGENCY ALERT MONITOR
 * ========================================================= */
.ethicax-cp-alarm-box{
	position:relative;
	background:linear-gradient(180deg,#fff7ed 0%,#ffffff 100%);
	border:1px solid #fed7aa;
	border-radius:14px;
	padding:14px;
	margin-bottom:12px;
	box-shadow:0 8px 22px rgba(154,52,18,.08)
}

.ethicax-cp-alarm-head{
	display:flex;
	flex-wrap:wrap;
	align-items:center;
	justify-content:space-between;
	gap:10px;
	margin-bottom:8px
}

.ethicax-cp-alarm-title{
	font-weight:900;
	font-size:16px;
	color:#9a3412
}

.ethicax-cp-alarm-status{
	font-size:13px;
	color:#7c2d12;
	font-weight:700
}

.ethicax-cp-alarm-actions{
	display:flex;
	gap:10px;
	flex-wrap:wrap;
	margin-top:10px;
	align-items:center
}

.ethicax-cp-alarm-actions .button{
	min-height:48px;
	font-weight:900;
	border-radius:12px
}

.ethicax-cp-alarm-live{
	animation:ethicaxCpAlarmPulse 1s infinite
}

@keyframes ethicaxCpAlarmPulse{
	0%{box-shadow:0 0 0 0 rgba(220,38,38,.28)}
	70%{box-shadow:0 0 0 16px rgba(220,38,38,0)}
	100%{box-shadow:0 0 0 0 rgba(220,38,38,0)}
}

/* =========================================================
 * TOGGLE BUTTON
 * requirement:
 * - green when ON
 * - red when OFF
 * - single toggle, not separate on/off buttons
 * ========================================================= */
.ethicax-cp-arm-toggle{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	gap:10px;
	padding:12px 18px;
	border-radius:999px;
	border:2px solid #e5e7eb;
	background:#fff;
	cursor:pointer;
	font-weight:900;
	min-height:50px;
	transition:all .18s ease;
	user-select:none;
	-webkit-tap-highlight-color:transparent
}

.ethicax-cp-arm-toggle:hover{
	transform:translateY(-1px)
}

.ethicax-cp-arm-toggle:active{
	transform:translateY(0)
}

.ethicax-cp-arm-toggle.is-armed{
	border-color:#16a34a;
	background:#f0fdf4;
	color:#166534;
	box-shadow:0 0 0 4px rgba(22,163,74,.12),0 10px 26px rgba(22,163,74,.12)
}

.ethicax-cp-arm-toggle.is-off{
	border-color:#dc2626;
	background:#fef2f2;
	color:#991b1b;
	box-shadow:0 0 0 4px rgba(220,38,38,.08),0 10px 26px rgba(220,38,38,.10)
}

.ethicax-cp-arm-lamp{
	width:14px;
	height:14px;
	border-radius:999px;
	display:inline-block;
	background:#dc2626;
	box-shadow:0 0 0 4px rgba(220,38,38,.12),0 0 14px rgba(220,38,38,.22)
}

.ethicax-cp-arm-toggle.is-armed .ethicax-cp-arm-lamp{
	background:#16a34a;
	box-shadow:0 0 0 4px rgba(22,163,74,.15),0 0 18px rgba(22,163,74,.45)
}

.ethicax-cp-arm-text{
	font-size:14px;
	line-height:1;
	font-weight:900
}

/* =========================================================
 * EMERGENCY OVERLAY
 * must feel like urgent response module
 * ========================================================= */
.ethicax-cp-call-overlay{
	position:fixed;
	inset:0;
	z-index:999999;
	background:linear-gradient(180deg,rgba(127,29,29,.97) 0%,rgba(17,24,39,.98) 100%);
	display:none;
	align-items:center;
	justify-content:center;
	padding:20px
}

.ethicax-cp-call-overlay.is-open{
	display:flex
}

.ethicax-cp-call-panel{
	width:min(100%,540px);
	border-radius:28px;
	padding:24px 20px;
	background:rgba(255,255,255,.08);
	backdrop-filter:blur(10px);
	-webkit-backdrop-filter:blur(10px);
	border:1px solid rgba(255,255,255,.16);
	box-shadow:0 18px 60px rgba(0,0,0,.35);
	color:#fff;
	text-align:center
}

.ethicax-cp-call-badge{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	width:96px;
	height:96px;
	border-radius:999px;
	background:rgba(255,255,255,.12);
	border:2px solid rgba(255,255,255,.22);
	font-size:42px;
	font-weight:900;
	margin-bottom:16px
}

.ethicax-cp-call-title{
	font-size:28px;
	line-height:1.1;
	font-weight:900;
	margin:0 0 8px 0
}

.ethicax-cp-call-sub{
	font-size:16px;
	line-height:1.6;
	color:#fef2f2;
	margin:0 0 12px 0
}

.ethicax-cp-call-uid{
	font-size:13px;
	font-weight:700;
	color:#fde68a;
	margin:0 0 18px 0;
	word-break:break-word
}

.ethicax-cp-call-actions{
	display:flex;
	gap:12px;
	justify-content:center;
	flex-wrap:wrap;
	margin-top:14px
}

.ethicax-cp-call-btn{
	min-width:140px;
	min-height:52px;
	border-radius:999px;
	border:none;
	cursor:pointer;
	font-size:15px;
	font-weight:900;
	padding:12px 18px;
	transition:transform .15s ease,opacity .15s ease
}

.ethicax-cp-call-btn:hover{
	transform:translateY(-1px)
}

.ethicax-cp-call-btn:active{
	transform:translateY(0)
}

.ethicax-cp-call-btn-stop{
	background:#fff;
	color:#991b1b
}

.ethicax-cp-call-btn-open{
	background:#facc15;
	color:#111827
}

.ethicax-cp-call-btn-arm{
	background:#16a34a;
	color:#fff
}

.ethicax-cp-call-ripple{
	animation:ethicaxCpCallRipple 1.15s infinite
}

@keyframes ethicaxCpCallRipple{
	0%{transform:scale(1);box-shadow:0 0 0 0 rgba(255,255,255,.25)}
	70%{transform:scale(1.02);box-shadow:0 0 0 18px rgba(255,255,255,0)}
	100%{transform:scale(1);box-shadow:0 0 0 0 rgba(255,255,255,0)}
}

/* stronger visual emergency mode */
.ethicax-cp-alarm-live .ethicax-cp-alarm-title{
	color:#b91c1c
}

.ethicax-cp-alarm-live .ethicax-cp-alarm-status{
	color:#b91c1c
}

/* =========================================================
 * FORM ELEMENTS
 * ========================================================= */
.ethicax-cp-card input[type="text"],
.ethicax-cp-card input[type="number"],
.ethicax-cp-card input[type="search"],
.ethicax-cp-card textarea,
.ethicax-cp-card select{
	width:100%;
	min-height:46px;
	padding:10px 12px;
	border:1px solid #d1d5db;
	border-radius:12px;
	background:#fff;
	box-sizing:border-box
}

.ethicax-cp-card textarea{
	min-height:90px;
	resize:vertical
}

/* =========================================================
 * MOBILE
 * ========================================================= */
@media(max-width:640px){
	.ethicax-cp-wrap{padding:10px}
	.ethicax-cp-card{padding:12px;border-radius:12px}
	.ethicax-cp-tabs{gap:6px}
	.ethicax-cp-tab{padding:8px 10px;font-size:13px}
	.ethicax-cp-kv{grid-template-columns:1fr}
	.ethicax-cp-tablewrap table{min-width:760px}
	.ethicax-cp-actions{flex-direction:column;align-items:stretch}
	.ethicax-cp-actions .button,
	.ethicax-cp-call-btn,
	.ethicax-cp-arm-toggle{
		width:100%;
		justify-content:center
	}
	.ethicax-cp-alarm-actions{
		flex-direction:column;
		align-items:stretch
	}
	.ethicax-cp-alarm-actions .button,
	.ethicax-cp-alarm-actions .ethicax-cp-arm-toggle{
		width:100%
	}
	.ethicax-cp-call-panel{
		padding:20px 16px;
		border-radius:22px
	}
	.ethicax-cp-call-title{
		font-size:24px
	}
	.ethicax-cp-call-actions{
		gap:10px
	}
}