/* Colori e font del tema Construction Field di icitec.net (blu #0255fd, Poppins). */
.icwb {
	--icwb-accent: #0255fd;
	--icwb-ink: #242424;
	--icwb-muted: #5b6270;
	--icwb-line: #d9deea;
	--icwb-bg: #f5f7fc;
	--icwb-error: #b3261e;
	font-family: Poppins, system-ui, sans-serif;
	color: var(--icwb-ink);
	max-width: 760px;
	margin: 0 auto;
	line-height: 1.6;
}
.icwb [hidden] { display: none !important; }
.icwb h2, .icwb h3 { margin: 0 0 .6em; }
.icwb-intro p { color: var(--icwb-muted); }
.icwb details { margin: 1em 0; }
.icwb summary { cursor: pointer; color: var(--icwb-accent); font-weight: 600; }
.icwb a { color: var(--icwb-accent); }

.icwb-steps { list-style: none; margin: 2em 0; padding: 0; display: grid; gap: 1em; counter-reset: s; }
.icwb-steps li { counter-increment: s; position: relative; padding-left: 3.2em; }
.icwb-steps li::before {
	content: counter(s);
	position: absolute; left: 0; top: 0;
	width: 2.2em; height: 2.2em; border-radius: 50%;
	background: var(--icwb-bg); color: var(--icwb-accent);
	display: flex; align-items: center; justify-content: center; font-weight: 700;
}
.icwb-steps strong { display: block; }
.icwb-steps span { color: var(--icwb-muted); font-size: .9em; }

.icwb-actions { text-align: center; margin: 2em 0; }
.icwb-check { margin-top: 2em; display: grid; gap: .3em; justify-items: center; }
.icwb-check span { color: var(--icwb-muted); font-size: .9em; }
.icwb-check form { display: flex; gap: .5em; margin-top: .4em; flex-wrap: wrap; justify-content: center; }

.icwb input[type=text], .icwb select, .icwb textarea {
	width: 100%; box-sizing: border-box; padding: .6em .8em; font: inherit;
	border: 1px solid var(--icwb-line); border-radius: 6px; background: #fff; color: inherit;
}
.icwb-check input[type=text] { width: 17em; text-transform: uppercase; letter-spacing: .08em; text-align: center; }
.icwb input:focus, .icwb select:focus, .icwb textarea:focus, .icwb-btn:focus-visible, .icwb-link:focus-visible {
	outline: 2px solid var(--icwb-accent); outline-offset: 2px;
}

.icwb-btn {
	background: var(--icwb-accent); color: #fff; border: 0; border-radius: 999px;
	padding: .8em 2em; font: inherit; font-weight: 600; cursor: pointer;
}
.icwb-btn:hover { filter: brightness(.92); }
.icwb-btn[disabled] { opacity: .6; cursor: wait; }
.icwb-btn-small { padding: .55em 1.4em; }
.icwb-link { background: none; border: 0; color: var(--icwb-accent); font: inherit; cursor: pointer; text-decoration: underline; }

.icwb-panel { background: var(--icwb-bg); border-radius: 10px; padding: 1.5em; }
.icwb-panel label { display: block; margin-bottom: 1em; font-weight: 600; }
.icwb-panel label input, .icwb-panel label select, .icwb-panel label textarea { margin-top: .3em; font-weight: 400; }
.icwb-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1em; }
.icwb fieldset { border: 1px solid var(--icwb-line); border-radius: 6px; margin: 0 0 1em; padding: .8em 1em 0; }
.icwb legend { font: inherit; font-weight: 600; padding: 0 .4em; }
.icwb-hint { color: var(--icwb-muted); font-size: .85em; margin-top: 0; }
.icwb-check-line { display: flex !important; gap: .6em; align-items: flex-start; font-weight: 400 !important; }
.icwb-check-line input { margin-top: .4em; }
.icwb-buttons { display: flex; gap: 1em; align-items: center; flex-wrap: wrap; }
.icwb-hp { position: absolute; left: -9999px; }
.icwb-error { color: var(--icwb-error); font-weight: 600; }

.icwb-code {
	font-size: 1.6em; font-weight: 700; letter-spacing: .1em; text-align: center;
	background: #fff; border: 2px dashed var(--icwb-accent); border-radius: 8px; padding: .6em;
	user-select: all; word-break: break-all;
}
.icwb-meta { display: grid; grid-template-columns: max-content 1fr; gap: .2em 1em; margin: 0 0 1em; }
.icwb-meta dt { font-weight: 600; }
.icwb-meta dd { margin: 0; }
.icwb-msg { background: #fff; border: 1px solid var(--icwb-line); border-radius: 8px; padding: .6em 1em; margin-bottom: .8em; }
.icwb-msg-manager { border-left: 4px solid var(--icwb-accent); }
.icwb-msg p { margin: .3em 0 0; white-space: pre-wrap; }
.icwb-msg time { color: var(--icwb-muted); font-size: .85em; }

@media (max-width: 560px) { .icwb-row { grid-template-columns: 1fr; } }
