:root {--r31-radius: 18px; --r31-city: #175B54; --r31-city-bg: #E9F4EF; --r31-shadow: 0 6px 22px #162d2110;}
html[data-theme=dark] {--r31-city: #BCE7D7; --r31-city-bg: #183D33; --r31-shadow: 0 6px 22px #0003;}
.r31-host>:not([data-r31-root]) {display: none !important;}
.r31-host>[data-r31-root] {display: block !important; min-width: 0;}
.r31-panel,.r31-place,.r31-tool {border: 1px solid var(--r23-line); border-radius: var(--r31-radius); background: var(--r23-paper); color: var(--r23-ink); padding: 20px; min-width: 0;}
.r31-panel {margin: 0 0 20px;}
.r31-grid {display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px;}
.r31-grid--pair {grid-template-columns: repeat(2,minmax(0,1fr));}
.r31-card-body {display: flex; flex-direction: column; flex: 1; min-width: 0;}
.r31-card-body>.btn {margin-top: auto;}
.r31-disclosure>summary {min-height: 48px; cursor: pointer; padding-block: 12px;}
.r31-grid>.r31-place {display: flex; flex-direction: column;}
.r31-grid .r31-actions {margin-top: auto;}
.r31-place h3,.r31-tool h3 {font: 700 18px/1.4 var(--ds-font-sans); margin: 12px 0;}
.r31-place p,.r31-tool p {font: 400 14px/1.6 var(--ds-font-sans); margin: 8px 0; overflow-wrap: anywhere;}
.r31-address {font-weight: 700 !important; color: var(--r31-city);}
.r31-badges {display: flex; gap: 6px; flex-wrap: wrap;}
.r31-badges>span {font: 700 11px/1.5 var(--ds-font-sans); background: var(--r31-city-bg); color: var(--r31-city); border-radius: 7px; padding: 5px 8px;}
.r31-actions {display: flex; gap: 8px; flex-wrap: wrap; margin: 12px 0;}
.r31-actions .btn,.r31-panel .btn {min-height: 48px; white-space: normal; font-size: 12px;}
.r31-note {display: block; font-size: 11px; line-height: 1.6; color: var(--r23-muted);}
.r31-packages {display: flex; gap: 8px; flex-wrap: wrap;}
.r31-packages b,.r31-highlight {padding: 8px; border-radius: 8px; background: var(--deal-saving-bg); color: var(--deal-saving-ink); font-size: 14px; line-height: 1.5;}
.r31-receipt {display: flex; flex-direction: column; gap: 10px; padding: 20px; background: var(--r31-city-bg); color: var(--r31-city); border: 1px dashed var(--r31-city); border-radius: 16px; margin: 16px 0;}
.r31-receipt strong {font: 800 28px/1.4 var(--ds-font-sans); font-variant-numeric: tabular-nums;}
.r31-receipt span,.r31-receipt small {font-size: 13px; line-height: 1.6;}
.r31-icon {font-size: 28px;}
.r31-tool {display: flex; flex-direction: column; gap: 8px;}
.r31-tool .btn {margin-top: auto;}
.r31-form-grid {display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px;}
.r31-panel label {display: block; font: 600 14px/1.6 var(--ds-font-sans);}
.r31-panel input,.r31-panel select {display: block; width: 100%; min-height: 48px; max-width: 100%; border: 1px solid var(--r23-line); border-radius: 10px; padding: 10px; background: var(--r23-soft); color: var(--r23-ink); font: 400 14px/1.5 var(--ds-font-sans);}
.r31-voucher-picker article {padding: 12px; border-bottom: 1px solid var(--r23-line);}
.r31-voucher-picker p {font-size: 13px; line-height: 1.5;}
.r31-panel code {display: block; padding: 10px; background: var(--voucher-code-bg); color: var(--voucher-code-ink); border: 1px dashed var(--deal-amber); overflow-wrap: anywhere;}
.r31-panel details summary {min-height: 44px; cursor: pointer; font-size: 12px;}
.r31-shortcuts {display: flex; gap: 10px; width: 100%;}
.r31-shortcuts a {flex: 1; min-height: 48px;}
.r31-panel :focus-visible,.r31-place :focus-visible,.r31-tool :focus-visible {outline: 3px solid var(--r31-city); outline-offset: 3px;}
.r31-actions [aria-pressed=true] {background: var(--r31-city); color: var(--r23-paper);}
.r31-tool:hover,.r31-place:hover {box-shadow: var(--r31-shadow);}
body header.header,body .public-search,body #modal {border-radius: var(--r31-radius); border-color: var(--r23-line);}
body #modal {background: var(--r23-paper); color: var(--r23-ink);}
@media (max-width:900px) {.r31-grid {grid-template-columns: repeat(2,minmax(0,1fr));}}
@media (max-width:600px) {.r31-grid {grid-template-columns: 1fr; gap: 10px;}.r31-panel,.r31-place,.r31-tool {padding: 14px;}.r31-panel h1 {font-size: 28px;}.r31-panel h2 {font-size: 24px;}.r31-place h3 {font-size: 17px;}.r31-form-grid {gap: 10px;}.r31-shortcuts {gap: 6px;}.r31-shortcuts .btn {font-size: 11px; padding: 8px;}.r31-local .r31-grid {grid-template-columns: 1fr;}.r31-local .r31-place p:not(.r31-address) {display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;}.r31-local .r31-actions .btn {font-size: 11px; padding: 7px 9px;}}
@media (prefers-reduced-motion:reduce) {.r31-panel *,.r31-place,.r31-tool {transition: none !important; animation: none !important; scroll-behavior: auto !important;}}
@media (max-width:600px) {[data-r31-local] .r31-local .r31-grid {display: grid; grid-template-columns: repeat(3,minmax(0,calc(100% - 20px))); overflow-x: auto; scroll-snap-type: x proximity; padding-bottom: 8px;}[data-r31-local] .r31-place {scroll-snap-align: start;}[data-r31-local] .r31-place p {font-size: 12px; line-height: 1.5;}}
@media (max-width:600px) {[data-r31-local] .r31-local .r31-grid {display: flex; flex-wrap: nowrap; width: 100%; max-width: 100%; min-width: 0; overflow-x: auto; gap: 10px;}[data-r31-local] .r31-grid>.r31-place {flex: 0 0 calc(100% - 20px); min-width: 0; max-width: 100%;}}
#modal.r31-host .r23-shop-grid {display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px;}
#modal-body.r31-host .r23-shop-grid {display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px;}
#modal .r31-panel .r26-card {display: flex; flex-direction: column; border: 1px solid var(--r23-line); border-radius: 16px; overflow: hidden; min-width: 0; background: var(--r23-paper);}
#modal .r31-panel .r26-card .r23-book-media {position: relative; height: 180px; min-height: 180px; background: #fff;}
#modal .r31-panel .r26-card img {width: 100%; height: 100%; padding: 5px; object-fit: contain;}
#modal .r31-panel .r26-card .r23-card-copy {display: flex; flex-direction: column; flex: 1; gap: 7px; padding: 12px; min-width: 0;}
#modal .r31-panel .r26-card h3 {font: 700 14px/1.5 var(--ds-font-sans); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; min-height: 42px; max-height: 42px; margin: 0;}
#modal .r31-panel .r26-card .r23-price {margin-top: auto; min-height: 105px;}
#modal .r31-panel .r26-card .r29-price-line {display: flex; gap: 7px; align-items: baseline; flex-wrap: wrap;}
#modal .r31-panel .r26-card .r23-price strong {color: var(--deal-hot); font: 800 24px/1.3 var(--ds-font-sans);}
#modal .r31-panel .r26-card .r23-price del {font-size: 11px; color: var(--r23-muted);}
#modal .r31-panel .r26-saving {display: inline-flex; padding: 6px; border: 1px solid var(--deal-saving-line); border-radius: 6px; background: var(--deal-saving-bg); color: var(--deal-saving-ink); font: 700 11px/1.5 var(--ds-font-sans); margin: 6px 0;}
#modal .r31-panel .r29-social {margin: 0; min-height: 42px; color: var(--deal-amber); font-size: 12px;}
#modal .r31-panel .r26-card .btn {min-height: 48px; margin: 0; white-space: nowrap; font-size: 12px;}
#modal .r31-panel .r26-card .r29-meta {font-size: 10px;}
@layer ds-contract {body #modal .r31-panel .r26-card a.btn.primary {}}
@media (max-width:600px) {#modal-body.r31-host .r23-shop-grid {grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px;}#modal .r31-panel .r26-card .r23-card-copy {padding: 8px;}#modal .r31-panel .r26-card .r23-book-media {height: 145px; min-height: 145px;}#modal .r31-panel .r26-card .r23-price strong {font-size: 22px;}#modal .r31-panel .r26-card .btn {font-size: 10px;}#modal .r31-panel .r26-saving {font-size: 10px; white-space: normal;}}
