
.sws-wrap {
	--sws-navy: #12344d;
	--sws-navy-soft: #eef5f8;
	--sws-green: #267447;
	--sws-green-soft: #edf7f0;
	--sws-blue: #1d6fa5;
	--sws-blue-soft: #eef7fd;
	--sws-gray: #667085;
	--sws-gray-soft: #f2f4f7;
	--sws-border: #d8dee7;
	--sws-text: #17212b;
	--sws-muted: #5e6b7a;
	color: var(--sws-text);
	margin-block: 1.5rem 2.5rem;
}
.sws-wrap.sws-wide {
	position: relative;
	left: 50%;
	width: min(1180px, calc(100vw - 32px));
	max-width: none !important;
	transform: translateX(-50%);
}
.sws-header {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 1rem;
	margin-bottom: .8rem;
}
.sws-header h2 {
	margin: 0;
	font-size: clamp(1.6rem, 3vw, 2.2rem);
}
.sws-subtitle {
	margin: .2rem 0 0;
	color: var(--sws-muted);
}
.sws-source-time {
	color: var(--sws-muted);
	font-size: .82rem;
}
.sws-summary {
	display: flex;
	flex-wrap: wrap;
	gap: .45rem;
	margin-bottom: .8rem;
}
.sws-summary-item {
	display: inline-flex;
	align-items: center;
	gap: .32rem;
	border: 1px solid var(--sws-border);
	border-radius: 999px;
	padding: .38rem .68rem;
	font-size: .82rem;
}
.sws-summary-arrived {
	border-color: #bdddc8;
	background: var(--sws-green-soft);
	color: var(--sws-green);
}
.sws-summary-expected {
	border-color: #c5ddef;
	background: var(--sws-blue-soft);
	color: var(--sws-blue);
}
.sws-summary-departed {
	background: var(--sws-gray-soft);
	color: var(--sws-gray);
}
.sws-toolbar {
	display: grid;
	grid-template-columns: 1fr auto minmax(180px, .45fr) auto;
	align-items: center;
	gap: .7rem;
	margin-bottom: .35rem;
	border: 1px solid var(--sws-border);
	border-radius: 14px;
	padding: .72rem;
	background: #f8fafb;
}
.sws-filter-group {
	display: flex;
	flex-wrap: wrap;
	gap: .4rem;
}
.sws-filter {
	appearance: none;
	border: 1px solid #cfd6df;
	border-radius: 999px;
	padding: .42rem .7rem;
	background: #fff;
	color: #344054;
	font: inherit;
	font-size: .8rem;
	font-weight: 680;
	cursor: pointer;
}
.sws-filter.is-active {
	border-color: var(--sws-navy);
	background: var(--sws-navy);
	color: #fff;
}
.sws-search input,
.sws-sort select {
	width: 100%;
	border: 1px solid #cfd6df;
	border-radius: 9px;
	padding: .48rem .62rem;
	background: #fff;
	font: inherit;
	color: var(--sws-text);
}
.sws-sort {
	display: flex;
	align-items: center;
	gap: .4rem;
	color: var(--sws-muted);
	font-size: .78rem;
	white-space: nowrap;
}
.sws-sort select {
	min-width: 170px;
}
.sws-result-count {
	min-height: 1.2rem;
	margin: .25rem 0 .55rem;
	color: var(--sws-muted);
	font-size: .8rem;
}
.sws-grid {
	display: grid;
	gap: 1rem;
	align-items: stretch;
}
.sws-columns-1 { grid-template-columns: minmax(0, 1fr); }
.sws-columns-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.sws-columns-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.sws-columns-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.sws-card {
	display: flex;
	flex-direction: column;
	min-width: 0;
	border: 1px solid var(--sws-border);
	border-top: 5px solid var(--sws-gray);
	border-radius: 16px;
	padding: 1rem;
	background: #fff;
	box-shadow: 0 8px 24px rgba(16, 24, 40, .06);
}
.sws-card[hidden] {
	display: none !important;
}
.sws-status-angekommen {
	border-top-color: var(--sws-green);
}
.sws-status-avisiert {
	border-top-color: var(--sws-blue);
}
.sws-card-top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: .5rem;
	margin-bottom: .65rem;
}
.sws-badge {
	border-radius: 999px;
	padding: .3rem .58rem;
	background: var(--sws-gray-soft);
	color: var(--sws-gray);
	font-size: .75rem;
	font-weight: 750;
}
.sws-status-angekommen .sws-badge {
	background: var(--sws-green-soft);
	color: var(--sws-green);
}
.sws-status-avisiert .sws-badge {
	background: var(--sws-blue-soft);
	color: var(--sws-blue);
}
.sws-ship-type {
	color: var(--sws-muted);
	font-size: .72rem;
	text-align: right;
}
.sws-card h3 {
	margin: 0;
	font-size: 1.22rem;
	line-height: 1.25;
}
.sws-meta {
	display: flex;
	flex-wrap: wrap;
	gap: .3rem .6rem;
	margin: .35rem 0 .8rem;
	color: var(--sws-muted);
	font-size: .77rem;
}
.sws-berth {
	border-radius: 10px;
	padding: .68rem;
	background: var(--sws-navy-soft);
}
.sws-berth span,
.sws-times span,
.sws-route span {
	display: block;
	color: var(--sws-muted);
	font-size: .72rem;
}
.sws-berth strong {
	display: block;
	margin-top: .1rem;
}
.sws-times {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: .55rem;
	margin-top: .65rem;
}
.sws-times > div {
	border: 1px solid #e7ebf0;
	border-radius: 9px;
	padding: .58rem;
}
.sws-times strong {
	display: block;
	margin-top: .12rem;
	font-size: .84rem;
	line-height: 1.35;
}
.sws-route {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
	align-items: center;
	gap: .4rem;
	margin: .65rem 0;
	border-top: 1px solid #e7ebf0;
	border-bottom: 1px solid #e7ebf0;
	padding: .62rem 0;
}
.sws-route strong {
	font-size: .84rem;
	line-height: 1.3;
	overflow-wrap: anywhere;
}
.sws-route-arrow {
	color: var(--sws-navy);
	font-size: 1.15rem !important;
}
.sws-details {
	margin-bottom: .7rem;
}
.sws-details summary {
	cursor: pointer;
	font-size: .83rem;
	font-weight: 700;
}
.sws-details dl {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: .55rem;
	margin: .65rem 0 0;
}
.sws-details dt {
	color: var(--sws-muted);
	font-size: .7rem;
}
.sws-details dd {
	margin: .08rem 0 0;
	font-size: .8rem;
	font-weight: 650;
}
.sws-actions {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: .5rem;
	margin-top: auto;
}
.sws-action {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 40px;
	border: 1px solid #cfd6df;
	border-radius: 9px;
	padding: .5rem .6rem;
	background: #fff;
	color: #24313d;
	font-size: .8rem;
	font-weight: 700;
	text-align: center;
	text-decoration: none;
}
.sws-action-primary {
	border-color: var(--sws-navy);
	background: var(--sws-navy);
	color: #fff;
}
.sws-context,
.sws-legal {
	margin-top: 1rem;
	border-radius: 11px;
	padding: .82rem .95rem;
	font-size: .8rem;
	line-height: 1.55;
}
.sws-context {
	background: #f6f8fa;
	color: var(--sws-muted);
}
.sws-links {
	display: flex;
	flex-wrap: wrap;
	gap: .8rem;
	margin-top: .75rem;
}
.sws-links a {
	font-weight: 700;
	text-underline-offset: .15em;
}
.sws-legal {
	border: 1px solid var(--sws-border);
	border-left: 4px solid var(--sws-gray);
	background: #fff;
	color: #475467;
}
.sws-no-results,
.sws-empty {
	border: 1px dashed var(--sws-border);
	border-radius: 12px;
	padding: 1rem;
	background: #fafbfc;
}
@media (max-width: 1000px) {
	.sws-columns-3,
	.sws-columns-4 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.sws-toolbar {
		grid-template-columns: 1fr 1fr;
	}
	.sws-filter-group {
		grid-column: 1 / -1;
	}
}
@media (max-width: 700px) {
	.sws-header {
		display: block;
	}
	.sws-source-time {
		margin-top: .35rem;
	}
	.sws-toolbar {
		display: block;
	}
	.sws-search,
	.sws-sort {
		display: block;
		margin-top: .65rem;
	}
}
@media (max-width: 620px) {
	.sws-wrap.sws-wide {
		width: min(100%, calc(100vw - 24px));
	}
	.sws-columns-2,
	.sws-columns-3,
	.sws-columns-4 {
		grid-template-columns: 1fr;
	}
}


.sws-features { margin: 0 0 1rem; }
.sws-section-heading { display:flex; align-items:baseline; justify-content:space-between; gap:1rem; margin-bottom:.55rem; }
.sws-section-heading h3 { margin:0; font-size:1.22rem; }
.sws-section-heading p { margin:0; color:var(--sws-muted); font-size:.76rem; }
.sws-feature-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.7rem; }
.sws-feature { border:1px solid var(--sws-border); border-left:5px solid var(--sws-navy); border-radius:12px; padding:.8rem .9rem; background:#fff; }
.sws-feature-label { margin:0 0 .2rem; color:var(--sws-muted); font-size:.7rem; font-weight:750; letter-spacing:.035em; text-transform:uppercase; }
.sws-feature h3 { margin:0; font-size:1.02rem; }
.sws-feature-value { margin:.3rem 0 .15rem; font-weight:750; }
.sws-feature-meta { margin:0 0 .45rem; color:var(--sws-muted); font-size:.75rem; }
.sws-feature a { font-size:.78rem; font-weight:700; text-underline-offset:.14em; }
.sws-view-switch { display:inline-flex; border:1px solid #cfd6df; border-radius:9px; overflow:hidden; background:#fff; }
.sws-view-button { appearance:none; border:0; border-right:1px solid #cfd6df; padding:.48rem .65rem; background:#fff; color:#344054; font:inherit; font-size:.78rem; font-weight:700; cursor:pointer; }
.sws-view-button:last-child { border-right:0; }
.sws-view-button.is-active { background:var(--sws-navy); color:#fff; }
.sws-more-wrap { display:flex; justify-content:center; margin-top:1rem; }
.sws-more { appearance:none; border:1px solid var(--sws-navy); border-radius:10px; padding:.65rem 1rem; background:#fff; color:var(--sws-navy); font:inherit; font-size:.84rem; font-weight:750; cursor:pointer; }
.sws-more:hover,.sws-more:focus-visible { background:var(--sws-navy); color:#fff; }
.sws-list-wrap { overflow-x:auto; border:1px solid var(--sws-border); border-radius:14px; background:#fff; box-shadow:0 8px 24px rgba(16,24,40,.05); }
.sws-list { width:100%; min-width:980px; border-collapse:collapse; font-size:.8rem; }
.sws-list th,.sws-list td { padding:.65rem .7rem; border-bottom:1px solid #e7ebf0; text-align:left; vertical-align:top; }
.sws-list th { background:#f7f9fb; color:var(--sws-muted); font-size:.7rem; letter-spacing:.03em; text-transform:uppercase; }
.sws-list tr:last-child td { border-bottom:0; }
.sws-list td strong,.sws-list td small { display:block; }
.sws-list td small { margin-top:.12rem; color:var(--sws-muted); }
.sws-list-status { display:inline-flex; border-radius:999px; padding:.25rem .48rem; background:var(--sws-gray-soft); color:var(--sws-gray); font-size:.7rem; font-weight:750; white-space:nowrap; }
.sws-list-status-angekommen { background:var(--sws-green-soft); color:var(--sws-green); }
.sws-list-status-avisiert { background:var(--sws-blue-soft); color:var(--sws-blue); }
.sws-list a { font-weight:700; }
@media (max-width:1000px) { .sws-feature-grid{grid-template-columns:1fr 1fr;} .sws-toolbar{grid-template-columns:1fr 1fr;} .sws-filter-group{grid-column:1/-1;} }
@media (max-width:700px) { .sws-feature-grid{grid-template-columns:1fr;} .sws-section-heading{display:block;} .sws-section-heading p{margin-top:.2rem;} .sws-view-switch{margin-top:.65rem;} }

.sws-warning {
	margin: 0 0 1rem;
	border: 1px solid #e5c46b;
	border-left: 5px solid #9a6700;
	border-radius: 11px;
	padding: .82rem .95rem;
	background: #fff8e6;
	color: #5f4500;
	font-size: .82rem;
	line-height: 1.55;
}
.sws-warning-critical {
	border-color: #e6a9a9;
	border-left-color: #b42318;
	background: #fff1f0;
	color: #7a271a;
}
.sws-warning a,
.sws-empty a {
	font-weight: 700;
	text-underline-offset: .15em;
}
