.restrictions{font-family:var(--sans)}
.restrictions.maplibregl-ctrl-group button.restriction-toggle{width:29px;height:40px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;font-size:9px;line-height:1;color:#444;background:#fff;border-radius:4px}
.restrictions.maplibregl-ctrl-group button.restriction-toggle[aria-pressed=true]{color:#fff;background:#454a54}
.restriction-toggle:disabled{opacity:.5}
.restriction-legend{position:fixed;right:10px;width:208px;z-index:5;padding:10px 12px;background:#fffefbf5;border:1px solid #d9d8d1;border-radius:7px;box-shadow:0 2px 8px #00000018;font-family:var(--sans);font-size:11px;line-height:1.5;color:var(--ink)}
.restriction-legend[hidden],.restriction-controls[hidden],.restriction-legend-row[hidden],.restriction-message[hidden]{display:none}
.restriction-legend-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:7px;font-size:11px}
.restriction-settings{border:0;padding:2px 0;background:none;color:#656975;font-size:10px;text-decoration:underline;text-underline-offset:3px;flex:none}
.restriction-keys{display:grid;gap:6px}
.restriction-legend-row{display:flex;align-items:center;gap:10px;font-size:12px;font-weight:600;white-space:nowrap}
.restriction-key{display:inline-flex;align-items:center;justify-content:space-between;width:44px;height:20px;flex:none}
.restriction-key.ticket{color:#783ec5;border:1px solid #783ec5;border-radius:2px;background:repeating-linear-gradient(135deg,#783ec526 0 2px,#783ec5 2px 3px,#783ec526 3px 5px)}
.restriction-key.closed{border:1px solid #c53449;border-radius:2px;background:repeating-linear-gradient(135deg,#c5344926 0 2px,#c53449 2px 3px,#c5344926 3px 5px)}
.restriction-key.port{border:1px solid #626970;border-radius:2px;background:repeating-linear-gradient(135deg,#e3e4e2 0 2px,#626970 2px 3px,#e3e4e2 3px 5px)}
.restriction-key.info{justify-content:center}
.restriction-key.info::before{content:"";width:8px;height:8px;background:#355e91;border:1px solid #fff;border-radius:50%;box-shadow:0 0 0 1px #355e9140}
.restriction-key-line{width:21px;height:0;border-top:3px solid #c53449}
.restriction-key.vehicle .restriction-key-line{border-top:3px dashed #d28408}
.restriction-key-icon{width:20px;height:20px;display:block}
.restriction-hint{font-size:9px;line-height:1.4;color:#6b6d74;margin:8px 0 0}
.restriction-controls{border-top:1px solid #e3e1db;margin-top:9px;padding-top:9px}
.restriction-switches{display:flex;gap:6px}
.restriction-switches button{flex:1;min-height:32px;border:1px solid #cac9c2;border-radius:4px;background:#fff;color:#666;font-size:11px}
.restriction-switches button[aria-pressed=true]{border-color:#515863;color:#303743;background:#edf0f3;font-weight:600}
.restriction-guide{margin-top:8px;font-size:10px;color:#5b626d}
.restriction-guide summary,.restriction-more summary{cursor:pointer;padding:4px 0;text-underline-offset:3px}
.restriction-guide p{margin:5px 0}
.restriction-message{font-size:11px;color:#a32a3e;margin:6px 0 0}
.restriction-message a{display:block}
.restriction-message button{border:1px solid #ccc;background:#fff;border-radius:4px;padding:4px 8px;margin-top:6px}
.restriction-popup{position:fixed;z-index:9;width:320px;max-width:calc(100vw - 20px);max-height:min(520px,calc(100dvh - 20px));padding:14px;background:#fffefc;border:1px solid #d7d5ce;border-radius:8px;box-shadow:0 5px 24px #17202b2b;overflow:auto;overscroll-behavior:contain;font-family:var(--sans);color:var(--ink)}
.restriction-close{position:absolute;right:5px;top:3px;border:0;background:none;font-size:21px;line-height:1;width:26px;height:26px;color:#626875}
.restriction-details{font-size:11px;line-height:1.55;overflow-wrap:anywhere}
.restriction-history{font-size:10px;color:#666c75;font-weight:500;margin:0 25px 6px 0}
.restriction-item{padding:9px 0;border-bottom:1px solid #e6e3dd}
.restriction-item:first-of-type{padding-top:0}
.restriction-item h3{font-size:13px;line-height:1.45;margin:0 12px 6px 0;font-weight:700}
.restriction-facts{display:flex;flex-wrap:wrap;align-items:center;gap:5px 8px}
.restriction-badge{font-size:10px;font-weight:700;padding:2px 6px;border-radius:3px;white-space:nowrap}
.restriction-badge.ticket{background:#eee4fb;color:#6f29b7}
.restriction-badge.closed{background:#fce5e8;color:#b52036}
.restriction-badge.port{background:#e6e8e9;color:#454c54}
.restriction-badge.info{background:#e5eef8;color:#355e91}
.restriction-badge.vehicle{background:#fff0cd;color:#895400}
.restriction-time{font-size:12px;font-variant-numeric:tabular-nums;font-weight:650;color:#333a43}
.restriction-exception{font-size:10px;color:#585f69;margin:5px 0 0}
.restriction-more{margin-top:6px;font-size:10px;color:#5b626c}
.restriction-more summary{font-size:10px;color:#4f5967}
.restriction-more section{padding:5px 0;border-bottom:1px solid #e8e5df}
.restriction-more p{margin:5px 0}
.restriction-precision{font-size:9px;color:#717780}
.restriction-sources{display:flex;flex-direction:column;gap:3px}
@media(max-width:600px){.restriction-legend{left:10px;right:10px;width:auto;padding:8px 10px}.restriction-legend-head{margin-bottom:6px}.restriction-keys{display:flex;justify-content:space-between;gap:5px}.restriction-legend-row{flex-direction:column;gap:4px;font-size:9px;flex:1;min-width:0;white-space:normal;text-align:center;line-height:1.35}.restriction-hint{display:none}.restriction-popup{font-size:11px;max-height:min(440px,calc(100dvh - 20px))}.restriction-controls{max-height:32dvh;overflow:auto}}
