.selection-controls[hidden], #comparison-tray[hidden], #selection-status[hidden], #selection-storage-warning[hidden], [data-use-view][hidden] { display: none !important; }
.selection-controls .btn, .selection-page .btn { min-height: 42px; }
.selection-controls .is-selected { background: #eaf1ff; border-color: #2563eb; color: #143b85; }
.service-entry { display: flex; flex-wrap: wrap; justify-content: center; gap: .55rem; max-width: 850px; margin: 1.25rem auto 0; }
.service-entry a { color: #fff; border: 1px solid #b5ccff; border-radius: 2rem; padding: .45rem .85rem; text-decoration: none; font-size: .875rem; }
.service-entry a:hover, .service-entry a:focus-visible { color: #143b85; background: #fff; }
.selection-notice { border: 1px solid #cbd8ee; background: #f5f8ff; border-radius: .85rem; padding: 1rem 1.2rem; line-height: 1.8; }
.selection-empty { padding: 2rem; border: 1px dashed #b8c8df; border-radius: 1rem; background: #f8fafc; }
.comparison-scroll { overflow-x: auto; border: 1px solid #cdd8e8; border-radius: .9rem; }
.comparison-scroll:focus-visible { outline: 3px solid #2563eb; outline-offset: 3px; }
.comparison-table { border-collapse: separate; border-spacing: 0; min-width: 100%; background: #fff; }
.comparison-table th, .comparison-table td { padding: 1rem; border-right: 1px solid #e0e7f0; border-bottom: 1px solid #e0e7f0; vertical-align: top; min-width: 245px; max-width: 330px; line-height: 1.7; overflow-wrap: anywhere; }
.comparison-table tr > :first-child { min-width: 110px; width: 130px; max-width: 140px; background: #f5f8fc; position: sticky; left: 0; z-index: 1; }
.comparison-table thead th { background: #eef4ff; }
.comparison-table tr > :last-child { border-right: 0; }
.comparison-table tbody tr:last-child > * { border-bottom: 0; }
.comparison-service + .comparison-service, .comparison-staff + .comparison-staff { margin-top: 1rem; padding-top: 1rem; border-top: 1px dashed #cbd5e1; }
.comparison-service strong, .comparison-service span { display: block; }
.comparison-service strong, .comparison-staff summary { font-size: .85rem; }
.comparison-service span { color: #164ca6; font-weight: 700; }
.comparison-staff summary { cursor: pointer; font-weight: 700; }
.comparison-staff dl { margin: .65rem 0 0; font-size: .8rem; }
.comparison-staff dl > div { display: flex; justify-content: space-between; gap: .6rem; }
.comparison-staff dt { font-weight: 400; }
.comparison-staff dd { white-space: nowrap; margin-bottom: .2rem; }
.has-comparison-tray { padding-bottom: calc(90px + env(safe-area-inset-bottom)); }
#comparison-tray { position: fixed; z-index: 1030; left: 0; right: 0; bottom: 0; padding: .7rem 1rem calc(.7rem + env(safe-area-inset-bottom)); background: #fff; border-top: 1px solid #bacbe3; box-shadow: 0 -4px 20px #173b671a; }
.comparison-tray-inner { display: flex; flex-wrap: wrap; gap: .65rem; align-items: center; justify-content: center; max-width: 1000px; margin: auto; }
#selection-status { position: fixed; z-index: 1080; bottom: calc(105px + env(safe-area-inset-bottom)); left: 50%; transform: translateX(-50%); width: min(92vw, 520px); background: #153c70; color: #fff; border-radius: .8rem; padding: .85rem 1.1rem; box-shadow: 0 5px 20px #0002; }
@media (max-width: 575.98px) { .comparison-table th, .comparison-table td { padding: .8rem; min-width: 220px; } .comparison-table tr > :first-child { min-width: 95px; width: 95px; } .comparison-tray-inner { gap: .45rem; font-size: .85rem; } }
@media print { #comparison-tray, #selection-status, .selection-controls, [data-remove-view] { display: none !important; } .comparison-scroll { overflow: visible; } .comparison-table th, .comparison-table td { min-width: 0; max-width: none; font-size: 9pt; } .comparison-table tr > :first-child { position: static; } }
