/* Teamup fundardagatal */
.nvtc {
	--nvtc-primary: #c21229;
	--nvtc-tint: color-mix(in srgb, var(--nvtc-primary) 6%, #fff);
	--nvtc-ink: color-mix(in srgb, var(--nvtc-primary) 55%, #0f172a);
	--nvtc-border: #e2e8f0;
	--nvtc-muted: #64748b;
	--nvtc-free: #059669;
	box-sizing: border-box;
	color: #1e293b;
	font-family: inherit;
	line-height: 1.4;
}
.nvtc *, .nvtc *::before, .nvtc *::after { box-sizing: border-box; }
.nvtc button { font: inherit; }

.nvtc-card {
	border: 1px solid var(--nvtc-border);
	border-radius: 1.7rem;
	background: linear-gradient(135deg, #fff 0%, #fff 50%, color-mix(in srgb, var(--nvtc-tint) 60%, #fff) 100%);
	box-shadow: 0 1px 2px rgba(15, 23, 42, .05);
	padding: .75rem;
}

/* Header */
.nvtc-head {
	display: flex; align-items: center; justify-content: space-between; gap: .5rem;
	margin-bottom: 1rem;
}
.nvtc-nav {
	display: inline-flex; align-items: center; justify-content: center;
	width: 2.375rem; height: 2.375rem; padding: 0;
	border: 1px solid var(--nvtc-border); border-radius: 999px;
	background: #fff; color: #475569; cursor: pointer;
	box-shadow: 0 1px 2px rgba(15, 23, 42, .05);
}
.nvtc-nav:hover { background: #f8fafc; }
.nvtc-title {
	display: flex; align-items: center; gap: .5rem;
	margin: 0; font-size: .875rem; font-weight: 900;
	letter-spacing: .025em; text-transform: uppercase; color: var(--nvtc-primary);
}
.nvtc-title svg { display: none; }

/* Weekdays */
.nvtc-weekdays, .nvtc-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: .25rem; }
.nvtc-weekdays { margin-bottom: .375rem; }
.nvtc-weekdays div {
	padding: .375rem 0; text-align: center;
	font-size: 10px; font-weight: 900; letter-spacing: .025em; text-transform: uppercase; color: var(--nvtc-muted);
}
.nvtc-weekdays .nvtc-long { display: none; }

/* Days */
.nvtc-pad { min-height: 3.25rem; }
.nvtc-day {
	display: flex; flex-direction: column; min-height: 3.25rem; min-width: 0;
	padding: .25rem; text-align: left; color: inherit; cursor: pointer;
	border: 1px solid var(--nvtc-border); border-radius: .5rem; background: #fff;
	transition: border-color .15s, background-color .15s;
}
.nvtc-day:hover { border-color: color-mix(in srgb, var(--nvtc-primary) 40%, #fff); background: color-mix(in srgb, var(--nvtc-tint) 50%, #fff); }
.nvtc-day:focus-visible, .nvtc-nav:focus-visible, .nvtc-close:focus-visible { outline: 2px solid var(--nvtc-primary); outline-offset: 2px; }
.nvtc-daytop { display: flex; align-items: center; justify-content: space-between; gap: .25rem; margin-bottom: .125rem; }
.nvtc-num { font-size: .75rem; font-weight: 900; color: #1e293b; }
.nvtc-today-dot { width: .375rem; height: .375rem; border-radius: 999px; background: var(--nvtc-primary); flex-shrink: 0; }
.nvtc-day.is-today { border-color: color-mix(in srgb, var(--nvtc-primary) 45%, #fff); }

/* Mobile: dots */
.nvtc-dots { margin-top: auto; display: flex; flex-wrap: wrap; gap: .125rem; align-items: center; }
.nvtc-dot { width: .375rem; height: .375rem; border-radius: 999px; background: var(--c); }
.nvtc-free-sm { font-size: 8px; font-weight: 600; line-height: 1; color: var(--nvtc-free); }
.nvtc-more-sm { font-size: 8px; font-weight: 700; line-height: 1; color: #94a3b8; }

/* Desktop: pills */
.nvtc-pills { display: none; flex: 1; min-height: 0; flex-direction: column; gap: .25rem; overflow: hidden; }
.nvtc-pill {
	padding: .125rem .25rem; border: 1px solid color-mix(in srgb, var(--c) 35%, #fff); border-radius: .5rem;
	background: linear-gradient(to right, color-mix(in srgb, var(--c) 13%, #fff), color-mix(in srgb, var(--c) 7%, #fff));
	color: color-mix(in srgb, var(--c) 70%, #000);
	font-size: 8px; font-weight: 700; line-height: 1.25; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
	box-shadow: 0 1px 2px rgba(15, 23, 42, .05);
}
.nvtc-free { margin-top: auto; font-size: 9px; font-weight: 600; color: var(--nvtc-free); }
.nvtc-more { font-size: 8px; font-weight: 700; color: #94a3b8; }

/* Legend + note */
.nvtc-legend {
	display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: .75rem;
	margin-top: .75rem; font-size: 11px; font-weight: 700; color: #475569;
}
.nvtc-legend span { display: inline-flex; align-items: center; gap: .375rem; }
.nvtc-legend i { width: .625rem; height: .625rem; border-radius: .125rem; background: var(--c); }
.nvtc-note { margin: .75rem 0 0; text-align: center; font-size: .875rem; font-weight: 500; color: var(--nvtc-muted); }
.nvtc-status { margin: 0 0 .75rem; text-align: center; font-size: .875rem; font-weight: 500; color: var(--nvtc-muted); }
.nvtc-error, .nvtc-status.is-error {
	border-radius: 1rem; background: #fef2f2; padding: .75rem 1rem;
	text-align: center; font-size: .875rem; font-weight: 600; color: #b91c1c;
}
.nvtc-loading { text-align: center; font-size: .875rem; color: var(--nvtc-muted); }
.nvtc.is-busy .nvtc-grid { opacity: .55; transition: opacity .15s; }

/* Day dialog */
.nvtc-dialog {
	width: min(32rem, calc(100vw - 2rem)); max-height: calc(100vh - 2rem);
	padding: 0; border: 0; border-radius: 1.7rem; color: #1e293b;
	box-shadow: 0 25px 50px -12px rgba(15, 23, 42, .35);
}
.nvtc-dialog::backdrop { background: rgba(15, 23, 42, .45); backdrop-filter: blur(2px); }
.nvtc-dialog-inner { padding: 1.25rem; }
.nvtc-dialog-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.nvtc-dialog h3 { margin: 0; font-size: 1.25rem; font-weight: 900; color: var(--nvtc-ink); }
.nvtc-dialog h3::first-letter { text-transform: uppercase; }
.nvtc-close {
	display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0;
	width: 2.25rem; height: 2.25rem; padding: 0; border: 0; border-radius: 999px;
	background: #f1f5f9; color: #475569; cursor: pointer;
}
.nvtc-close:hover { background: #e2e8f0; }
.nvtc-list { list-style: none; margin: 0; padding: 0; display: grid; gap: .5rem; }
.nvtc-list li {
	display: grid; grid-template-columns: auto 1fr; gap: .125rem .75rem; align-items: baseline;
	padding: .625rem .875rem; border-radius: 1rem;
	border: 1px solid color-mix(in srgb, var(--c) 35%, #fff);
	background: linear-gradient(to right, color-mix(in srgb, var(--c) 12%, #fff), color-mix(in srgb, var(--c) 6%, #fff));
	color: color-mix(in srgb, var(--c) 70%, #000);
}
.nvtc-list .nvtc-time { font-weight: 900; font-variant-numeric: tabular-nums; }
.nvtc-list .nvtc-room { font-weight: 700; }
.nvtc-list .nvtc-sub { grid-column: 2; font-size: .8125rem; font-weight: 500; opacity: .85; }
.nvtc-empty { margin: 0; padding: 1rem; border-radius: 1rem; background: #ecfdf5; color: var(--nvtc-free); font-weight: 700; text-align: center; }
.nvtc-book {
	display: inline-block; margin-top: 1rem; padding: .75rem 1.5rem; border-radius: 999px;
	background: var(--nvtc-primary); color: #fff !important; font-size: .875rem; font-weight: 900; text-decoration: none !important;
}
.nvtc-book:hover { background: color-mix(in srgb, var(--nvtc-primary) 85%, #000); }

/* Dialog lock icon */
.nvtc-dialog-icon {
	display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0;
	width: 3rem; height: 3rem; border-radius: 1rem;
	background: var(--nvtc-primary); color: #fff;
}
.nvtc-dialog-head:has(.nvtc-dialog-icon) { align-items: center; }

/* Booking form */
.nvtc-form { display: grid; gap: 1rem; }
.nvtc-formsub { margin: 0; font-size: .9375rem; font-weight: 500; color: var(--nvtc-muted); }
.nvtc-field { display: grid; gap: .375rem; }
.nvtc-label { font-size: .875rem; font-weight: 700; color: #334155; }
.nvtc-field input, .nvtc-select {
	width: 100%; height: 3.25rem; min-height: 3.25rem; padding: 0 .875rem; line-height: normal;
	border: 1px solid var(--nvtc-border); border-radius: 1rem;
	font: inherit; font-weight: 600; color: #1e293b; background: #fff;
	vertical-align: middle;
}
.nvtc-select { padding-right: 2rem; appearance: none; -webkit-appearance: none; cursor: pointer; font-variant-numeric: tabular-nums;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
	background-repeat: no-repeat; background-position: right .75rem center; }
.nvtc-field input:focus, .nvtc-select:focus { outline: 2px solid var(--nvtc-primary); outline-offset: 1px; border-color: var(--nvtc-primary); }
.nvtc-grid2 { display: grid; gap: 1rem; grid-template-columns: 1fr 1fr; }

.nvtc-roompills { display: flex; flex-wrap: wrap; gap: .5rem; }
.nvtc-roompill {
	padding: .625rem 1.25rem; border-radius: 999px; cursor: pointer;
	border: 1px solid var(--nvtc-border); background: #f8fafc;
	font-size: .875rem; font-weight: 800; color: color-mix(in srgb, var(--c) 70%, #000);
}
.nvtc-roompill:hover { background: color-mix(in srgb, var(--c) 8%, #fff); }
.nvtc-roompill.is-active { background: var(--c); color: #fff; border-color: var(--c); }
.nvtc-roompill:focus-visible { outline: 2px solid var(--nvtc-primary); outline-offset: 2px; }

.nvtc-hint { margin: -.25rem 0 0; font-size: .75rem; font-weight: 500; color: var(--nvtc-muted); }
.nvtc-form .nvtc-book { margin-top: .25rem; width: 100%; border: 0; cursor: pointer; }
.nvtc-formerr { margin: 0; padding: .75rem 1rem; border-radius: 1rem; background: #fef2f2; color: #b91c1c; font-size: .875rem; font-weight: 600; }
.nvtc-formerr.is-info { background: color-mix(in srgb, var(--nvtc-primary) 8%, #fff); color: color-mix(in srgb, var(--nvtc-primary) 75%, #000); }
.nvtc-ok { margin: 0; padding: 1rem; border-radius: 1rem; background: #ecfdf5; color: var(--nvtc-free); font-weight: 700; text-align: center; }

@media (min-width: 640px) {
	.nvtc-form .nvtc-book { width: auto; justify-self: start; }
}

/* sm */
@media (min-width: 640px) {
	.nvtc-card { padding: 1.25rem; }
	.nvtc-head { margin-bottom: 1.25rem; gap: .75rem; }
	.nvtc-title svg { display: block; }
	.nvtc-weekdays { margin-bottom: .5rem; }
	.nvtc-weekdays div { padding: .5rem 0; font-size: 11px; }
	.nvtc-weekdays .nvtc-long { display: inline; }
	.nvtc-weekdays .nvtc-short { display: none; }
	.nvtc-grid { gap: .375rem; }
	.nvtc-pad, .nvtc-day { min-height: 7rem; }
	.nvtc-day { padding: .375rem; border-radius: .75rem; }
	.nvtc-daytop { margin-bottom: .25rem; }
	.nvtc-num { font-size: .875rem; }
	.nvtc-dots { display: none; }
	.nvtc-pills { display: flex; }
	.nvtc-legend { margin-top: 1rem; gap: 1rem; font-size: .75rem; }
	.nvtc-dialog-inner { padding: 1.75rem; }
}
/* md */
@media (min-width: 768px) {
	.nvtc-card { padding: 1.5rem; }
	.nvtc-title { font-size: 1rem; }
	.nvtc-pad, .nvtc-day { min-height: 8rem; }
	.nvtc-day { padding: .5rem; }
	.nvtc-pill, .nvtc-more { font-size: 9px; }
	.nvtc-free { font-size: 10px; }
}
@media (prefers-reduced-motion: reduce) {
	.nvtc-day, .nvtc.is-busy .nvtc-grid { transition: none; }
}
