/* CyfrowyStrażak — Mapa zdarzeń v0.2. Styl zgodny z makietami desktop/mobile/form. */
:root{color-scheme:dark;--bg:#081523;--panel:#0d1c2e;--panel2:#12263a;--line:#28465f;--line-soft:#20394f;--ink:#edf6ff;--muted:#96adc5;--low:#6885a1;--cyan:#54d8ff;--blue:#488eff;--green:#4ff1cb;--red:#ff826e;--amber:#ffc16c;--r:14px;--font:Inter,"Segoe UI",system-ui,-apple-system,BlinkMacSystemFont,sans-serif}
*{box-sizing:border-box}html,body{height:100%;margin:0}body{font-family:var(--font);font-size:13px;color:var(--ink);background:#081421;-webkit-font-smoothing:antialiased}button,input,textarea,select{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}button:disabled{cursor:not-allowed;opacity:.5}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible{outline:2px solid #75e7ff;outline-offset:3px}::selection{background:#1e6480;color:white}[hidden]{display:none!important}.visually-hidden,.svg-sprite{position:absolute!important;clip:rect(0,0,0,0);width:1px;height:1px;overflow:hidden;white-space:nowrap}.icon{height:19px;width:19px;flex:none;fill:none;stroke:currentColor;stroke-width:1.85;stroke-linecap:round;stroke-linejoin:round}.app-shell{height:100dvh;min-height:620px;display:flex;flex-direction:column;overflow:hidden;background:#081523}
.demo-ribbon{height:24px;flex:none;display:flex;align-items:center;justify-content:center;gap:9px;border-bottom:1px solid #69502b70;background:#201f1b;color:#ffcf89;font-size:9px;letter-spacing:.13em}.demo-ribbon-desc{letter-spacing:.01em;color:#c3ac8c;font-size:10px}.demo-dot{height:6px;width:6px;background:#ffc774;border-radius:50%;box-shadow:0 0 12px #efb560}
.topbar{height:88px;display:flex;align-items:center;gap:clamp(14px,2.4vw,34px);padding:0 clamp(16px,2vw,31px);background:linear-gradient(180deg,#0d1b2b,#091827);border-bottom:1px solid #2b455b;flex:none;z-index:200;position:relative}.brand{display:flex;align-items:center;gap:18px;flex:none;min-width:326px}.brand-mark{position:relative;width:51px;height:51px;display:grid;place-items:center;border-radius:14px;background:linear-gradient(145deg,#153555,#0e243a);border:1px solid #3975a0;box-shadow:0 0 20px #1a9dff1e,inset 0 1px 0 #a9dfff30}.brand-mark .icon{width:30px;height:30px;color:#6de0ff;filter:drop-shadow(0 0 6px #249dff65)}.brand-mark-light{position:absolute;right:6px;top:5px;width:6px;height:6px;background:#50f2cc;box-shadow:0 0 9px #44f2c4;border-radius:50%}.brand-copy{display:flex;flex-direction:column;gap:6px}.brand-copy strong{font-size:21px;letter-spacing:-.065em;line-height:1;font-weight:830}.brand-copy strong span{color:#77ddff}.brand-copy small{font-size:10px;letter-spacing:.19em;font-weight:760;color:#819eb7}.top-nav{display:flex;align-items:center;gap:10px;flex:none}.top-nav a{height:46px;display:flex;align-items:center;gap:10px;border:1px solid transparent;border-radius:12px;padding:0 16px;color:#94a7bb;font-weight:780;font-size:14px;transition:background .18s,border-color .18s}.top-nav a.active,.top-nav a:hover{background:#17354d;color:#c1efff;border-color:#3a7595}.top-nav .icon{width:20px;height:20px}.global-search{height:46px;max-width:410px;min-width:190px;flex:1;margin:auto}.search-field{border:1px solid #31516b;background:#0b1a2a;border-radius:11px;color:#82a1c0;height:44px;display:flex;align-items:center;gap:12px;padding:0 13px;transition:border-color .2s,box-shadow .2s}.search-field:focus-within{border-color:#50b2df;box-shadow:0 0 0 3px #22b3f20e}.search-field input{border:0;background:transparent;outline:none;color:#f2fbff;flex:1;min-width:0;width:100%;font-size:12px}.search-field input::placeholder{color:#728da6}.search-shortcut{border:1px solid #345773;border-radius:5px;color:#638baa;font-size:11px;line-height:18px;min-width:20px;text-align:center}.top-actions{display:flex;align-items:center;gap:24px;margin-left:auto}.live-status{display:flex;gap:11px;align-items:flex-start;min-width:200px}.live-status>span:last-child{display:flex;flex-direction:column;gap:6px}.live-status strong{font-size:10px;letter-spacing:.13em;color:#71f4cb}.live-status small{font-size:11px;color:#7e9aaf}.preview-led{display:inline-block;width:8px;height:8px;background:#56f6d6;border-radius:50%;box-shadow:0 0 12px #52e8cb96;flex:none}.live-status>.preview-led{margin-top:3px}.primary-button{min-height:46px;display:inline-flex;align-items:center;justify-content:center;gap:12px;border:1px solid #8ecfff8e;border-radius:12px;background:linear-gradient(115deg,#4bd6f6,#5096fa);color:#062139;font-weight:830;font-size:13px;padding:0 20px;transition:transform .18s,filter .18s,box-shadow .18s}.primary-button:hover{transform:translateY(-1px);filter:brightness(1.05);box-shadow:0 6px 27px #318aff39}.header-cta{white-space:nowrap;min-height:47px}.header-cta .icon{width:20px;height:20px}
.dashboard{flex:1;display:grid;min-height:0;grid-template-columns:400px minmax(0,1fr);position:relative}.sidebar{display:flex;flex-direction:column;min-height:0;background:linear-gradient(135deg,#0c1c2c,#091623 65%);border-right:1px solid #29455b;z-index:60;position:relative}.sidebar-intro{padding:22px 20px 14px}.eyebrow{display:flex;justify-content:space-between;align-items:center;gap:4px;font-size:11px;letter-spacing:.14em;font-weight:860;color:#91ddf9}.sidebar-live{display:flex;align-items:center;gap:7px;color:#86f7d9;font-size:9px;letter-spacing:.1em;background:#143743a3;border-radius:8px;padding:7px}.sidebar-live .preview-led{width:7px;height:7px}.intro-subtitle{margin:7px 0 15px;font-size:11px;color:#92aabd}.intro-subtitle span{color:#527d91}.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.stat-card{border:1px solid #2a4b66;background:linear-gradient(150deg,#172e45,#101f32);border-radius:11px;min-height:91px;padding:13px 9px 9px;display:flex;flex-direction:column;gap:7px}.stat-card strong{font-size:24px;line-height:1;font-weight:760;color:#dceeff}.stat-card>span{font-size:10px;color:#8ca7c0;line-height:1.2}.stat-card small{font-size:11px;color:#b1cde1}.stat-card .stat-red{color:#ff786e}.stat-card .stat-blue{color:#71afff}.stat-card .stat-up{color:#55e7c4;font-size:9px}.sidebar-filters{padding:0 20px 12px}.sidebar-search-row{display:flex;gap:7px}.sidebar-search-row>.search-field{flex:1;min-width:0}.small-icon-button{height:43px;width:43px;flex:none;display:grid;place-items:center;border:1px solid #355572;border-radius:11px;color:#8baac4;background:#142c43}.small-icon-button:hover,.small-icon-button[aria-expanded="true"]{border-color:#4da3c8;color:#c1ecff;background:#19415b}.chip-scroll{display:flex;flex-wrap:wrap;gap:8px 6px;margin-top:13px}.filter-chip{height:36px;display:inline-flex;align-items:center;gap:8px;background:#132a3f;border:1px solid #31536d;border-radius:22px;padding:0 12px;color:#a2b8cd;font-size:11px;font-weight:740;transition:border-color .15s,background .15s,transform .15s}.filter-chip:hover{transform:translateY(-1px);border-color:#4b86ac}.filter-chip.active{background:linear-gradient(135deg,#184863,#14364c);border-color:#4bb5e8;color:#f5fbff;box-shadow:inset 0 0 0 1px #6ac9ff20}.chip-dot{width:8px;height:8px;border-radius:50%;background:#adc3de}.c-fire{background:#ff786b!important;box-shadow:0 0 10px #ff7e66a5}.c-accident{background:#ffbf6b!important;box-shadow:0 0 10px #ffbc6b8a}.c-collision{background:#79aafd!important;box-shadow:0 0 10px #79aafd7c}.c-medical{background:#ff75b4!important;box-shadow:0 0 10px #ff75b48d}.c-flood{background:#55e6d3!important;box-shadow:0 0 10px #55e6d37f}.c-search,.c-other{background:#9bc9ee!important}.advanced-filters{display:flex;gap:9px;align-items:center;padding-top:13px;color:#8da8bd;font-size:11px}.advanced-filters select{background:#13283d;color:#e0f2ff;border:1px solid #345871;border-radius:8px;padding:8px;max-width:170px}.text-button{background:none;color:#7ddcf1;border:0;font-size:11px;font-weight:740}.list-toolbar{height:39px;display:flex;align-items:center;justify-content:space-between;padding:0 22px;flex:none;color:#b7cde1;font-size:12px}.list-toolbar strong{font-size:13px}.list-toolbar span{font-size:11px;color:#8fa9c1}.event-list{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;padding:0 14px 12px;scrollbar-color:#2f5670 transparent;scrollbar-width:thin}.event-card{width:100%;min-height:59px;display:flex;align-items:center;gap:12px;text-align:left;color:#f0f8ff;border:1px solid #244158;border-radius:10px;background:linear-gradient(115deg,#12273a,#0d1e30);margin:2px 0 4px;padding:8px 11px;transition:background .16s,border-color .16s,transform .16s,box-shadow .16s}.event-card:hover{border-color:#4c8eb1;background:#16344c;transform:translateX(2px)}.event-card.is-active{border-color:#53beed;box-shadow:inset 0 0 0 1px #308ab9,0 0 21px #2379cb18;background:#15334b}.event-card-icon,.detail-big-icon{flex:none;display:grid;place-items:center;width:42px;height:42px;border-radius:10px;border:1px solid var(--cat-line);background:var(--cat-bg);color:var(--cat-color);box-shadow:0 0 16px var(--cat-glow)}.event-card-icon .icon{width:22px;height:22px}.event-card-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:5px}.event-card-title{font-size:11.5px;font-weight:800;line-height:1.25;display:flex;align-items:center;gap:5px;justify-content:space-between}.event-card-place{font-size:10px;color:#97acc2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.event-card-place b{font-size:8px;color:#ffcd86;font-weight:750}.new-badge{font-size:9px;color:#ffe4e4;background:linear-gradient(125deg,#b04b64,#862f50);border:1px solid #db678281;padding:3px 5px;border-radius:5px;letter-spacing:.035em;white-space:nowrap}.event-card-side{display:flex;align-items:center;gap:5px;flex-direction:column;color:#a0b2c7;font-size:10px;white-space:nowrap}.event-card-side .icon{height:14px;width:14px;color:#a3cdea}.event-empty{padding:50px 16px;display:flex;flex-direction:column;gap:9px;align-items:center;color:#7e9bb1}.event-empty strong{color:#d6eaff}.event-empty .icon{width:34px;height:34px}.sidebar-foot{flex:none;min-height:59px;display:flex;align-items:center;gap:12px;border-top:1px solid #2a4b61;margin:0 14px 9px;border:1px solid #244457;border-radius:11px;background:#102337;padding:11px 15px}.sidebar-foot>.icon{color:#67e8d6;width:27px;height:27px;padding:5px;border-radius:7px;background:#143a49}.sidebar-foot div{display:flex;flex-direction:column;gap:4px}.sidebar-foot strong{font-size:11px;color:#bed4e6}.sidebar-foot span{font-size:10px;color:#849db2}.sheet-handle{display:none}
.type-fire{--cat-bg:#572e34;--cat-line:#c95c57;--cat-color:#ff9a7e;--cat-glow:#fa654929}.type-accident{--cat-bg:#5d452b;--cat-line:#bd853d;--cat-color:#ffcf83;--cat-glow:#ebaf4c25}.type-collision{--cat-bg:#294674;--cat-line:#4f85db;--cat-color:#adcbff;--cat-glow:#448cf128}.type-medical{--cat-bg:#533148;--cat-line:#c65392;--cat-color:#ffa0d2;--cat-glow:#f34db132}.type-flood{--cat-bg:#1e565b;--cat-line:#2daea7;--cat-color:#90faf0;--cat-glow:#31d5c322}.type-storm,.type-search,.type-other{--cat-bg:#2b455b;--cat-line:#5b819f;--cat-color:#d2edff;--cat-glow:#4b9dc222}
.map-shell{position:relative;overflow:hidden;min-width:0;min-height:0;background:#081b30;isolation:isolate}.map-shell::after{content:"";position:absolute;inset:0;z-index:3;pointer-events:none;background:radial-gradient(ellipse at 60% 38%,transparent 25%,#04111b33 90%),linear-gradient(180deg,#07142525,transparent 18%,transparent 77%,#0613222e)}#map,.map-fallback{position:absolute;inset:0;width:100%;height:100%}.leaflet-container{background:#091b2d!important;font-family:var(--font)!important}.leaflet-control-attribution{background:#0a1a2be8!important;color:#8fb6d3!important;font-size:9px!important}.leaflet-control-attribution a{color:#80c8f5!important}.leaflet-pane.leaflet-tile-pane{filter:saturate(.98) brightness(.91)}.map-light .leaflet-pane.leaflet-tile-pane{filter:saturate(.8)}.leaflet-tooltip.cs-event-tooltip{font:700 10px var(--font);color:#d3efff;background:#10273cdb;border:1px solid #355879;border-radius:7px;box-shadow:none;padding:4px 6px}.leaflet-tooltip.cs-event-tooltip:before{border-right-color:#355879}.map-fallback{z-index:1;background:radial-gradient(circle at 52% 35%,#0f3250,#071629 78%);overflow:hidden}.fallback-map-world{position:absolute;inset:0;width:100%;height:100%;--fallback-scale:1;transform:scale(var(--fallback-scale));transform-origin:center center;transition:transform .24s ease}.fallback-map-svg{display:block;width:100%;height:100%;object-fit:fill;user-select:none;pointer-events:none}.fallback-pins{position:absolute;inset:0}.fallback-pin{position:absolute;background:none;padding:0;border:0;transform:translate(-50%,-50%);color:inherit;width:48px;height:48px;display:grid;place-items:center;z-index:6}.fallback-pin:hover{z-index:8}.fallback-pin-label{position:absolute;left:50px;top:16px;color:#a7cce8;background:#0b1a2bcc;white-space:nowrap;border:1px solid #3760808a;padding:4px 6px;border-radius:5px;font:700 11px var(--font)}.map-light .map-fallback{filter:brightness(1.35) saturate(.7)}.map-light .map-tool{background:#29445f}.incident-div-icon{border:0;background:transparent}.event-marker{width:52px;height:52px;position:relative;display:grid;place-items:center;transition:transform .18s}.event-marker::before{content:"";position:absolute;width:33px;height:33px;border-radius:50%;background:var(--pin-bg);border:1.5px solid var(--pin-border);box-shadow:0 0 0 7px var(--pin-halo),0 0 23px var(--pin-glow),inset 0 0 12px #0004}.event-marker>.icon{position:relative;z-index:1;color:var(--pin-text);width:20px;height:20px;stroke-width:2.15;filter:drop-shadow(0 0 6px var(--pin-glow))}.event-marker .pin-ring{position:absolute;width:46px;height:46px;border-radius:50%;border:1.5px solid var(--pin-border);opacity:0;pointer-events:none}.event-marker.is-new .pin-ring{animation:pin-pulse 3.4s ease-out infinite}.event-marker.is-selected{transform:scale(1.19)}.event-marker.is-selected::before{box-shadow:0 0 0 8px var(--pin-halo),0 0 30px var(--pin-glow),inset 0 0 12px #0003}.pin-fire{--pin-bg:#994237;--pin-border:#ff9067;--pin-text:#fff0dd;--pin-glow:#ff6f4b9c;--pin-halo:#fe774b1f}.pin-accident{--pin-bg:#865522;--pin-border:#ffc16a;--pin-text:#fff4db;--pin-glow:#ffc16a93;--pin-halo:#ffbb5b21}.pin-collision{--pin-bg:#31549a;--pin-border:#73afff;--pin-text:#f0f6ff;--pin-glow:#64a0ffa8;--pin-halo:#508fff20}.pin-medical{--pin-bg:#8e3368;--pin-border:#ff8cc4;--pin-text:#fff1fc;--pin-glow:#fc75b6a8;--pin-halo:#ff78b620}.pin-flood{--pin-bg:#13777c;--pin-border:#62eee0;--pin-text:#e6fffd;--pin-glow:#56eddda8;--pin-halo:#47dbc71b}.pin-search,.pin-storm,.pin-other{--pin-bg:#315777;--pin-border:#8fd0ef;--pin-text:#f5fcff;--pin-glow:#80c9e591;--pin-halo:#62c9ff20}
.map-top-left,.map-top-right,.map-zoom,.map-bottom-left,.map-bottom-right,.new-toast,.map-hint,.map-error{position:absolute;z-index:410}.map-top-left{top:21px;left:22px;display:flex;align-items:center;gap:14px}.map-location{display:flex;align-items:center;gap:10px;border:1px solid #366081;background:#0c2034e6;border-radius:12px;height:60px;padding:8px 14px 8px 9px;backdrop-filter:blur(10px)}.map-location-icon{display:grid;place-items:center;width:40px;height:40px;border:1px solid #4382a9;border-radius:10px;color:#7de0fb;background:#173b50}.map-location-icon .icon{width:22px;height:22px}.map-location div{display:flex;flex-direction:column;gap:5px}.map-location small{font-size:10px;color:#8faabf}.map-location strong{font-size:14px}.map-location strong span{color:#90b2d2;margin-left:8px}.map-demo-badge{display:inline-flex;align-items:center;gap:6px;color:#ffcc80;background:#2b281fdd;border:1px solid #8c683c91;border-radius:10px;height:34px;padding:0 11px;font-size:11px;font-weight:770}.map-top-right{top:126px;right:24px;display:flex;gap:9px}.map-tool{min-height:43px;min-width:43px;display:flex;align-items:center;justify-content:center;gap:10px;border:1px solid #315470;border-radius:12px;background:#0b1d30e8;color:#a4bfd6;backdrop-filter:blur(10px);transition:background .16s,border-color .16s,color .16s}.map-tool:hover{color:#ecfaff;border-color:#4d9cca;background:#1b3d56}.layer-button{padding:0 14px;font-size:12px;font-weight:700}.map-zoom{right:24px;top:184px;display:flex;flex-direction:column;gap:9px}.map-bottom-left{bottom:28px;left:22px}.map-legend-card{width:365px;max-width:calc(100vw - 50px);background:#0a1c2fef;border:1px solid #315d7d;border-radius:14px;padding:15px 17px;box-shadow:0 13px 48px #0004;backdrop-filter:blur(12px)}.legend-title{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:#b8cce2}.legend-title b{font-size:12px;color:#7dd1f3;border:1px solid #315f7e;border-radius:8px;padding:3px 8px}.legend-types{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;margin-top:11px}.legend-types>span{display:flex;flex-wrap:wrap;align-items:center;gap:5px}.legend-types .icon{width:18px;height:18px;color:#ff9477}.legend-types>span:nth-child(2) .icon{color:#ffc273}.legend-types>span:nth-child(3) .icon{color:#85b3ff}.legend-types>span:nth-child(4) .icon{color:#ff87bd}.legend-types>span:nth-child(5) .icon{color:#76e7e0}.legend-types b{font-size:16px}.legend-types small{flex-basis:100%;font-size:10px;color:#8ca9be}.legend-check{margin-top:15px;display:flex;align-items:center;gap:8px;font-size:11px;color:#a6bdcd}.legend-check input{accent-color:#42baf0;width:15px;height:15px}.map-bottom-right{bottom:27px;right:22px;display:flex;flex-direction:column;align-items:flex-end;gap:5px;color:#80a1bd;font-size:10px;z-index:10}.new-toast{top:16px;right:24px;width:350px;padding:14px 17px;border:1px solid #416d8f;border-radius:13px;background:linear-gradient(120deg,#142d45e8,#0d2035ee);box-shadow:0 12px 43px #0007;backdrop-filter:blur(12px);animation:toast-slide .36s cubic-bezier(.2,.7,.2,1)}.new-toast-head{display:flex;align-items:center;justify-content:space-between;color:#9deaf9;font-size:10px;letter-spacing:.13em;font-weight:860}.new-toast-head>span{display:flex;align-items:center;gap:8px}.new-toast-head .preview-led{width:6px;height:6px}.new-toast-head b{color:#809cb7;font-size:9px;letter-spacing:0}.new-toast-head button{background:transparent;border:0;color:#b5cde3;padding:0}.new-toast-head button .icon{width:15px;height:15px}.new-toast-body{display:flex;gap:11px;align-items:center;margin-top:9px;color:inherit;background:transparent;border:0;padding:0;text-align:left;width:100%}.new-toast-category{width:38px;height:38px;display:grid;place-items:center;background:#5d3038;border:1px solid #c8625a;border-radius:11px;color:#ffb394;box-shadow:0 0 19px #ff6f4b42}.new-toast-body>span:last-child{display:flex;flex-direction:column;gap:5px}.new-toast-body strong{font-size:12px}.new-toast-body small{font-size:10px;color:#a2b8ca}.map-hint{left:50%;top:110px;transform:translateX(-50%);display:flex;align-items:center;gap:9px;max-width:calc(100% - 24px);background:#13334bea;border:1px solid #66bfdc;border-radius:11px;padding:12px 15px;font-size:12px;box-shadow:0 12px 26px #0008}.map-hint button{border:0;background:transparent;color:#ffa5a5;font-size:10px;font-weight:850}.picking-pulse{width:9px;height:9px;background:#6ff2d4;border-radius:50%;box-shadow:0 0 0 4px #6ff2d422}.map-shell.is-picking #map,.map-shell.is-picking .map-fallback{cursor:crosshair}.map-error{top:91px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:8px;border:1px solid #4b789a;background:#15374bdd;color:#c3e0f2;padding:9px 13px;border-radius:10px;font-size:11px;max-width:80%;pointer-events:none}
.overlay-backdrop{position:fixed;inset:0;background:#020913a8;z-index:600;backdrop-filter:blur(4px);animation:fade-in .17s ease}.detail-backdrop{z-index:400}.detail-drawer{position:absolute;right:15px;bottom:16px;width:371px;max-width:calc(100% - 30px);height:min(537px,calc(100% - 260px));min-height:350px;z-index:430;display:flex;flex-direction:column;background:linear-gradient(165deg,#12263a,#0b1a2c 70%);border:1px solid #365b77;border-radius:15px;box-shadow:0 22px 58px #020914aa;overflow:hidden;animation:drawer-in .25s ease}.detail-head{flex:none;padding:18px 16px 0;position:relative}.drawer-close{position:absolute;top:13px;right:13px;width:28px;height:28px;display:grid;place-items:center;border:1px solid #375c7a;border-radius:9px;background:#152b42;color:#b9d5ec;z-index:3}.drawer-close .icon{height:17px;width:17px}.drawer-close:hover{background:#265174}.detail-header-row{display:flex;gap:12px;align-items:center;padding-right:16px}.detail-big-icon{width:48px;height:48px;border-radius:12px}.detail-big-icon .icon{height:27px;width:27px}.detail-header-row h2{font-size:12.5px;line-height:1.35;margin:0 0 7px;font-weight:840}.detail-header-row h2 .new-badge{margin-left:4px}.detail-header-row p{color:#91a9c1;font-size:10px;margin:0}.detail-tabs{margin-top:16px;border-bottom:1px solid #3a5970;display:grid;grid-template-columns:1fr 1fr}.detail-tabs button{height:39px;color:#93acc4;border:0;border-bottom:2px solid transparent;background:transparent;font-size:11px;font-weight:740}.detail-tabs button.active{color:#a7f0ff;border-bottom-color:#48d6ff}.detail-body{flex:1;overflow:auto;min-height:0;padding:10px 16px;scrollbar-color:#355d79 transparent;scrollbar-width:thin}.detail-rows{display:flex;flex-direction:column}.detail-rows>div{display:grid;grid-template-columns:1fr 1fr;align-items:start;gap:8px;padding:7px 0;border-bottom:1px solid #2841595e;font-size:10.5px}.detail-rows span{display:flex;align-items:center;gap:8px;color:#9eb7cc}.detail-rows span .icon{width:14px;height:14px;color:#b3cde7}.detail-rows strong{font-weight:650;color:#dcebf9;word-break:break-word}.detail-map-link{display:flex;margin:6px 0 0 auto;gap:7px;align-items:center;background:#122b43;border:1px solid #315e80;border-radius:8px;color:#64c9fa;padding:7px 10px;font-size:10px}.detail-map-link .icon{height:12px;width:12px}.detail-body h3{margin:14px 0 10px;font-size:11px;color:#b7cbdd}.timeline{list-style:none;margin:0;padding:0 0 3px 3px}.timeline li{position:relative;display:flex;align-items:flex-start;gap:12px;min-height:47px;padding-bottom:11px}.timeline li:not(:last-child)::after{content:"";position:absolute;left:8px;top:19px;bottom:1px;width:2px;background:#2c6482}.timeline li.complete:not(:last-child)::after{background:#24c7b6}.timeline li>span{width:18px;height:18px;border:2px solid #3b5975;border-radius:50%;display:grid;place-items:center;flex:none;background:#0e2337;z-index:1}.timeline li>span .icon{width:10px;height:10px;stroke-width:3}.timeline li.complete>span{background:#3dd8b6;border-color:#3dd8b6;color:#062b2b}.timeline li.current>span{border-color:#49c8ff;box-shadow:0 0 0 5px #42bcff28}.timeline li>div{display:flex;flex-direction:column;gap:4px}.timeline li strong{font-size:10px;color:#adc2d5;font-weight:650}.timeline li strong small{font-size:9px;color:#ffce85}.timeline li>div>small{font-size:9px;color:#7f9bb4}.detail-disclaimer{display:flex;align-items:start;gap:7px;color:#b6a98d;font-size:10px;line-height:1.35}.detail-disclaimer .icon{width:14px;height:14px}.detail-footer{padding:10px 16px 15px;flex:none}.detail-footer .primary-button{width:100%;min-height:45px}.note-content h3{font-size:14px}.note-content p{line-height:1.7;color:#b3c7db}.outline-button{min-height:42px;display:inline-flex;align-items:center;justify-content:center;gap:9px;border:1px solid #3b5a78;border-radius:10px;background:#12263b;color:#ccdeed;padding:0 15px;font-weight:760;font-size:12px}.outline-button:hover{border-color:#69abc6;background:#183b53}
.form-backdrop{z-index:700;background:#020913c9}.form-dialog{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:min(768px,calc(100vw - 28px));max-height:calc(100dvh - 28px);display:flex;flex-direction:column;background:#101f30;border:1px solid #3e6883;border-radius:20px;overflow:hidden;z-index:720;box-shadow:0 38px 100px #000c;animation:form-appear .26s ease}.form-hero{flex:none;position:relative;overflow:hidden;min-height:121px;background:linear-gradient(125deg,#1c3e58,#172e45 59%,#10233a);border-bottom:1px solid #2d5370}.form-hero::before{content:"";position:absolute;width:390px;height:390px;right:-120px;top:-210px;border:1px solid #4e93bc35;border-radius:50%;box-shadow:0 0 0 55px #3c9cdc08,0 0 0 110px #4da5ed05}.form-hero-inner{position:relative;padding:22px 32px 19px}.form-kicker{display:flex;align-items:center;gap:9px;color:#a0f0f4;font-size:10px;font-weight:820;letter-spacing:.15em}.form-kicker .preview-led{width:6px;height:6px}.form-hero h2{margin:14px 0 4px;font-size:29px;letter-spacing:-.048em;line-height:1.15}.form-hero p{margin:0;font-size:12px;color:#9eb6cb}.form-close{top:18px;right:19px;width:37px;height:37px}.incident-form{display:flex;flex-direction:column;min-height:0}.form-content{overflow:auto;padding:18px 31px 22px;min-height:0;overscroll-behavior:contain;scrollbar-color:#3f6681 transparent;scrollbar-width:thin}.form-demo-banner{display:flex;align-items:flex-start;gap:9px;border:1px solid #8a734f65;border-radius:10px;background:#4234253f;padding:9px 12px;color:#d7c5ac;font-size:10px;line-height:1.4}.form-demo-banner .icon{height:16px;width:16px;color:#ffce8c}.section-heading{display:flex;align-items:center;gap:12px;margin:18px 0 12px}.section-heading>span{flex:none;display:grid;place-items:center;width:29px;height:29px;border:1px solid #3f7b98;background:#194056;color:#9de6ff;border-radius:9px;font-size:11px;font-weight:820}.section-heading h3{margin:0 0 4px;font-size:13px}.section-heading p{margin:0;color:#8ba5ba;font-size:10px}.required-star{font-style:normal;color:#ffaf98}.form-fields-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 18px}.readonly-field{position:relative;min-width:0}.readonly-field label,.form-field label{display:block;margin:0 0 6px;font-size:11px;color:#c5d5e4;font-weight:710}.readonly-field input,.form-field input,.form-field textarea{width:100%;background:#13283d;border:1px solid #355572;border-radius:9px;color:#d7eafa;min-height:39px;padding:0 13px;font-size:12px;outline:none}.readonly-field input{padding-right:32px}.readonly-field>.icon{position:absolute;bottom:11px;right:11px;color:#799bb6;width:15px;height:15px}.form-field input:focus,.form-field textarea:focus{border-color:#58bcec;box-shadow:0 0 0 3px #3aaff518}.form-field input::placeholder,.form-field textarea::placeholder{color:#7792aa}.category-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.category-button{position:relative;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:8px;min-height:87px;background:#142a40;border:1px solid #355673;border-radius:11px;color:#dcebf8;padding:10px 5px;transition:transform .16s,border-color .16s,background .16s}.category-button:hover{transform:translateY(-2px);border-color:#62b5db;background:#1b3852}.category-button[aria-pressed="true"]{border:2px solid #46d7f9;background:#173e56;box-shadow:0 0 17px #31b5ed1b}.category-icon{display:grid;place-items:center;width:33px;height:33px;border-radius:9px;border:0;background:var(--cat-bg);color:var(--cat-color)}.category-icon .icon{width:19px;height:19px}.category-button strong{font-size:10px}.category-check{position:absolute;right:6px;top:5px;display:none;place-items:center;width:19px;height:19px;background:#42d1f0;color:#092a3e;border-radius:50%}.category-check .icon{width:12px;height:12px;stroke-width:3}.category-button[aria-pressed="true"] .category-check{display:grid}.location-tabs{display:grid;grid-template-columns:1fr 1fr;gap:10px}.location-tab{display:flex;gap:12px;align-items:center;text-align:left;border:1px solid #355675;background:#142b41;color:#abc3d8;border-radius:11px;padding:12px;min-height:60px}.location-tab.active{border:2px solid #4ad2f6;background:#183d56;color:#a6ecff}.location-tab>.icon{height:23px;width:23px}.location-tab>span{display:flex;flex-direction:column;gap:4px}.location-tab strong{font-size:11px}.location-tab small{font-size:9px;color:#89a7be}.form-location-preview{margin-top:9px;border:1px solid #375978;border-radius:11px;background:#12283e;display:grid;grid-template-columns:1.1fr 1fr;overflow:hidden;min-height:117px}.location-preview-map{background:linear-gradient(#0d223650,#10283aa2),url('./poland-fallback.svg?v=0.5.6') center 60%/cover;position:relative;display:grid;place-items:center;overflow:hidden}.location-preview-map::before{content:"";position:absolute;inset:-25%;background:repeating-linear-gradient(135deg,transparent 0 28px,#35a8d515 29px 30px,transparent 31px 66px)}.preview-map-pin{position:relative;display:grid;place-items:center;width:47px;height:47px;border:2px solid #fb7a62;border-radius:50%;color:#ffb29b;background:#853b3b;box-shadow:0 0 0 14px #ff694720,0 0 30px #f9605755}.preview-map-pin .icon{height:24px;width:24px}.location-preview-map:not(.has-point) .preview-map-pin{opacity:.6}.preview-map-label{position:absolute;bottom:10px;left:11px;font-size:10px;color:#d2e5f5;background:#082338cb;border-radius:5px;padding:3px 6px}.location-preview-info{display:flex;flex-direction:column;align-items:flex-start;gap:9px;padding:14px}.location-preview-info>small{font-size:10px;color:#90acc4}.location-preview-info>strong{font-size:12px}.location-preview-info>span{font-size:10px;color:#90aec8}.location-preview-info .outline-button{min-height:29px;padding:0 10px;font-size:10px;color:#9ed4f1}.location-preview-info .outline-button .icon{height:13px;width:13px}.form-field{margin-top:12px}.form-field textarea{height:auto;min-height:56px;padding:11px 13px;resize:vertical;max-height:150px}.optional{font-weight:450;color:#718da4}.form-info{display:flex;align-items:flex-start;gap:9px;color:#cfc1a4;background:#252a2e;border:1px solid #6959436b;padding:9px 11px;border-radius:9px;font-size:10px;line-height:1.5;margin-top:11px}.form-info .icon{height:15px;width:15px;flex:none;color:#ffce82}.form-error{margin-top:10px;border:1px solid #a85c6e;border-radius:9px;background:#572d3c77;color:#ffc1c7;padding:11px;font-size:12px}.form-actions{flex:none;display:flex;align-items:center;gap:13px;justify-content:flex-end;padding:13px 31px;border-top:1px solid #33526e;background:#152a41}.form-actions .outline-button{min-width:133px}.form-actions .submit-button{min-width:200px}.form-actions .submit-button span{font-size:10px;color:#1e466a;opacity:.67}.toast-stack{position:fixed;right:23px;bottom:22px;z-index:900;display:flex;flex-direction:column;gap:9px;max-width:min(440px,calc(100% - 30px));pointer-events:none}.toast{display:flex;align-items:flex-start;gap:10px;padding:12px 15px;border:1px solid #387e9b;background:#12344bf2;border-radius:11px;color:#e6f9ff;box-shadow:0 15px 45px #0008;font-size:12px;line-height:1.5;pointer-events:auto;animation:toast-slide .21s ease}.toast .icon{height:18px;width:18px;color:#65e6c6}.toast.error{border-color:#99566a;background:#482b3b}.toast.error .icon{color:#ff9a9f}.mobile-nav{display:none}
@keyframes fade-in{from{opacity:0}to{opacity:1}}@keyframes drawer-in{from{transform:translateY(11px);opacity:.7}to{transform:translateY(0);opacity:1}}@keyframes form-appear{from{opacity:0;transform:translate(-50%,calc(-50% + 11px)) scale(.986)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}@keyframes toast-slide{from{opacity:0;transform:translateY(-9px)}to{opacity:1;transform:translateY(0)}}@keyframes pin-pulse{0%{transform:scale(.64);opacity:.8}85%,100%{transform:scale(1.7);opacity:0}}
@media(max-width:1410px){.brand{min-width:auto}.topbar{gap:18px}.top-nav{gap:3px}.global-search{max-width:370px}.top-actions{gap:11px}.live-status{min-width:164px}.dashboard{grid-template-columns:368px minmax(0,1fr)}.sidebar-intro{padding-left:15px;padding-right:15px}.sidebar-filters{padding-left:15px;padding-right:15px}.event-card{gap:9px}.event-card-icon{width:37px;height:37px}.map-legend-card{width:325px}.detail-drawer{width:351px}.map-top-left{left:18px}.map-bottom-left{left:18px}}
@media(max-width:1140px){.global-search{display:none}.topbar{justify-content:space-between}.top-actions{margin-left:0}.live-status{min-width:auto}.dashboard{grid-template-columns:345px minmax(0,1fr)}.map-legend-card{width:300px}.legend-types{grid-template-columns:repeat(5,1fr)}.detail-drawer{width:335px}.map-demo-badge{display:none}.new-toast{width:300px}.map-top-right,.map-zoom{right:15px}}
@media(max-width:900px){.brand-copy strong{font-size:19px}.topbar{padding:0 14px}.top-nav a{padding:0 10px}.live-status{display:none}.dashboard{grid-template-columns:315px minmax(0,1fr)}.sidebar-intro{padding:19px 12px 12px}.sidebar-filters{padding:0 11px 11px}.stat-card{padding:10px 5px}.stat-card>span{font-size:9px}.filter-chip{padding:0 10px}.event-list{padding:0 8px 10px}.event-card{padding:7px 6px}.event-card-title{font-size:10px}.map-legend-card{display:none}.map-bottom-right{display:none}.detail-drawer{height:min(510px,calc(100% - 225px))}.map-top-left{top:14px;left:13px}.map-top-right{top:102px;right:12px}.map-zoom{top:157px;right:12px}}
@media(max-width:760px){html,body{overflow:hidden}.app-shell{min-height:0;height:100dvh}.demo-ribbon{height:21px;font-size:8px;gap:5px;padding:0 8px}.demo-ribbon-desc{display:none}.topbar{height:78px;padding:0 17px;gap:8px}.brand{gap:13px;min-width:0}.brand-mark{width:50px;height:50px}.brand-copy strong{font-size:21px}.brand-copy small{font-size:9px}.top-nav,.global-search,.live-status{display:none}.top-actions{margin-left:auto}.header-cta{width:48px;height:48px;min-height:48px;padding:0;border-radius:13px}.header-cta .icon{width:23px;height:23px}.header-cta span{display:none}.dashboard{display:block;position:relative;min-height:0;flex:1}.map-shell{position:absolute;inset:0;overflow:hidden}.map-shell::after{background:linear-gradient(180deg,#06182a00 25%,#06182a33 74%,#06182a2a)}.map-top-left{top:18px;left:15px}.map-location{height:57px}.map-demo-badge{display:none}.new-toast{left:15px;right:auto;top:auto;bottom:calc(43dvh + 89px);width:min(370px,calc(100vw - 30px));padding:12px}.new-toast-head{font-size:9px}.new-toast-body strong{font-size:11px}.map-top-right{top:18px;right:15px}.map-top-right .layer-button{min-width:43px;padding:0}.map-top-right .layer-button span{display:none}.map-tool{min-width:43px;min-height:44px;border-radius:13px}.map-zoom{right:15px;top:75px;gap:8px}.map-bottom-left,.map-bottom-right{display:none}.sidebar{position:absolute;top:auto;left:0;right:0;bottom:0;height:43dvh;min-height:305px;max-height:calc(100% - 75px);border:1px solid #3b6486;border-bottom:0;border-radius:27px 27px 0 0;box-shadow:0 -20px 55px #0008;z-index:50;background:linear-gradient(180deg,#10263c,#0c1c2d 75%);transition:height .26s cubic-bezier(.15,.8,.27,1)}.sidebar.is-expanded{height:calc(100% - 75px)}.sheet-handle{display:grid;place-items:center;flex:none;width:100%;height:32px;border:0;background:transparent;padding:0}.sheet-handle span{width:70px;height:6px;border-radius:8px;background:#7799b9;box-shadow:0 0 11px #679dc039}.sidebar-intro{padding:4px 17px 13px}.eyebrow{justify-content:flex-start;gap:15px}.sidebar-live{margin-left:auto}.intro-subtitle{display:none}.stat-grid{display:none}.sidebar::before{content:'Zdarzenia.';display:block;color:#fff;font-size:29px;font-weight:850;letter-spacing:-.05em;padding:0 18px 10px}.sidebar-filters{padding:0 12px 10px}.sidebar-search-row{display:none}.chip-scroll{flex-wrap:nowrap;overflow:auto;margin-top:0;padding:0 3px 6px;scrollbar-width:none}.chip-scroll::-webkit-scrollbar{display:none}.filter-chip{height:42px;font-size:12px;padding:0 14px}.advanced-filters{flex-wrap:wrap;padding:9px}.list-toolbar{height:29px;padding:0 16px}.list-toolbar strong{font-size:11px}.event-list{padding:0 12px 10px}.event-card{min-height:76px;padding:10px 12px;margin-bottom:8px;gap:12px;border-radius:14px}.event-card-icon{height:54px;width:54px;border-radius:13px}.event-card-icon .icon{width:27px;height:27px}.event-card-title{font-size:13px}.event-card-place{font-size:11px}.event-card-side{font-size:11px}.sidebar-foot{display:none}.mobile-nav{height:74px;display:grid;grid-template-columns:repeat(3,1fr);align-items:center;flex:none;background:#0b1b2d;border-top:1px solid #294864;z-index:90;padding-bottom:env(safe-area-inset-bottom)}.mobile-nav button{border:0;background:transparent;color:#789eb8;display:flex;gap:4px;align-items:center;justify-content:center;flex-direction:column;font-size:11px;min-height:58px}.mobile-nav button .icon{width:23px;height:23px}.mobile-nav button.active{color:#70def8;font-weight:780}.fallback-map-world{width:max(100%,calc((100dvh - 173px)*1.33));max-width:none;left:50%;right:auto;top:50%;bottom:auto;height:100%;transform:translate(-50%,-50%) scale(var(--fallback-scale));transform-origin:center center}.fallback-map-svg{object-fit:fill}.detail-backdrop{position:fixed;inset:0;z-index:500;background:#02101a83}.detail-drawer{position:fixed;right:0;bottom:74px;left:0;width:100%;max-width:100%;height:min(68dvh,620px);min-height:390px;border-radius:25px 25px 0 0;z-index:530;box-shadow:0 -22px 65px #000a}.detail-header-row h2{font-size:15px}.detail-rows>div{font-size:12px}.detail-footer{padding-bottom:14px}.map-hint{top:160px;z-index:500;flex-wrap:wrap;justify-content:center}.map-error{top:88px;width:calc(100% - 30px);max-width:none}.form-dialog{top:0;left:0;transform:none;width:100%;height:100dvh;max-height:none;border-radius:0;border:0;animation:none}.form-hero{min-height:142px}.form-hero-inner{padding:30px 18px 16px}.form-hero h2{font-size:25px}.form-hero p{max-width:310px;line-height:1.5}.form-close{right:12px;top:16px}.form-content{padding:15px 16px 19px}.form-fields-grid{gap:10px}.category-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.category-button{min-height:80px;padding:8px 3px}.category-button strong{font-size:9px}.location-tabs{gap:8px}.location-tab{padding:9px;min-height:60px}.location-tab small{font-size:8px}.form-location-preview{grid-template-columns:1fr 1fr}.form-actions{padding:12px 13px calc(13px + env(safe-area-inset-bottom))}.form-actions .outline-button{min-width:105px}.form-actions .submit-button{min-width:0;flex:1;font-size:11px}.toast-stack{bottom:calc(76px + env(safe-area-inset-bottom));right:13px}}
@media(max-width:400px){.brand-mark{width:41px;height:41px}.brand-copy strong{font-size:17px}.brand-copy small{font-size:7px}.sidebar::before{font-size:24px}.stat-grid{display:none}.category-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.category-button{min-height:76px}.category-button strong{font-size:8px}.category-icon{width:30px;height:30px}.location-tab small{display:none}.form-location-preview{grid-template-columns:1fr}.location-preview-map{height:90px}.form-fields-grid{gap:7px}.readonly-field input{font-size:10px;padding-left:8px}.form-actions .submit-button span{display:none}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
body.tab-hidden .event-marker .pin-ring{animation-play-state:paused}

/* v0.2 UX: reset mapy przez kontrolkę „Polska”, fullscreen osobno. */
.map-location{color:inherit;font:inherit;cursor:pointer;text-align:left}.map-location:hover{border-color:#6bc9f0;background:#14334b}.mobile-title{display:none}
@media(max-width:760px){.sidebar::before{display:none!important}.sidebar-intro{padding:4px 17px 13px}.mobile-title{display:block;margin:12px 0 4px;font-size:30px;line-height:1;font-weight:840;letter-spacing:-.055em}.mobile-title span{color:#52d9ff}.sheet-handle{height:32px}.sidebar-filters{padding-top:6px}}

.map-shell:fullscreen{width:100vw;height:100vh;display:block;background:#071829}

/* Map picker: w trybie wskazania punktu nie wymagamy zgadywanego adresu. */
.extra-details{margin-top:10px;border:1px solid #315773;border-radius:9px;background:#142b42;padding:8px 11px;color:#b5d1e5;font-size:11px}
.extra-details summary{cursor:pointer;font-weight:750}.extra-details summary span{font-weight:450;color:#90a9bc}.extra-details .form-field{margin:12px 0 2px}

/* Wektorowy tryb awaryjny: przeciąganie i zoom (desktop + dotyk). */
.map-fallback{touch-action:none}.fallback-map-world{transform:translate(var(--drag-x,0px),var(--drag-y,0px)) scale(var(--fallback-scale))}.fallback-map-world .fallback-pin{touch-action:manipulation}
@media(max-width:760px){.fallback-map-world{transform:translate(calc(-50% + var(--drag-x,0px)),calc(-50% + var(--drag-y,0px))) scale(var(--fallback-scale))}}

/* v0.2.2: mobile layout — jeden stabilny stos warstw.
   Desktop pozostaje nietknięty. */
@media (max-width: 760px) {
  html, body {
    width: 100%;
    height: 100%;
    min-height: 0;
    overflow: hidden;
  }
  .app-shell {
    height: 100dvh;
    min-height: 0;
    max-height: 100dvh;
    overflow: hidden;
  }
  .dashboard {
    position: relative;
    flex: 1 1 0%;
    min-height: 0;
    height: auto;
    display: block;
    overflow: hidden;
    isolation: isolate;
  }
  .map-shell {
    position: absolute;
    inset: 0;
    min-height: 0;
    overflow: hidden;
  }
  .mobile-nav {
    position: relative;
    z-index: 200;
    flex: 0 0 calc(70px + env(safe-area-inset-bottom));
    height: calc(70px + env(safe-area-inset-bottom));
    padding-bottom: env(safe-area-inset-bottom);
  }

  /* Widok MAPA: krótki podgląd listy, większość ekranu na mapę.
     Widok ZDARZENIA: pełny arkusz z niezależnym przewijaniem. */
  .sidebar {
    position: absolute;
    inset: auto 0 0;
    height: clamp(180px, 27dvh, 242px);
    min-height: 0;
    max-height: calc(100% - 80px);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    z-index: 70;
    border-radius: 24px 24px 0 0;
    transition: height .24s ease;
  }
  .sidebar.is-expanded {
    height: calc(100% - 8px);
    min-height: 0;
    max-height: calc(100% - 8px);
  }
  .sheet-handle {
    height: 26px;
    min-height: 26px;
    flex: 0 0 26px;
    touch-action: pan-y;
  }
  .sidebar-intro { padding: 0 16px 8px; flex: 0 0 auto; }
  .mobile-title {
    font-size: 24px;
    line-height: 1.05;
    margin: 5px 0 0;
  }
  .sidebar-filters {
    padding: 4px 12px 3px;
    flex: 0 0 auto;
  }
  .chip-scroll { padding-bottom: 3px; }
  .filter-chip {
    height: 34px;
    font-size: 11px;
    padding: 0 11px;
  }
  .list-toolbar {
    height: 25px;
    flex: 0 0 25px;
    padding: 0 15px;
  }
  .event-list {
    flex: 1 1 auto;
    min-height: 0;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    padding: 0 10px 12px;
  }
  .event-card { min-height: 67px; margin-bottom: 6px; padding: 7px 10px; }
  .event-card-icon { height: 43px; width: 43px; border-radius: 11px; }
  .event-card-icon .icon { width: 22px; height: 22px; }

  /* Stałe powiadomienie demo zabierało niemal całą widoczną mapę.
     NOWE zdarzenie jest już widoczne jako pierwsza karta na arkuszu. */
  .new-toast { display: none !important; }

  .map-top-left { top: 12px; left: 12px; z-index: 30; }
  .map-top-right { top: 12px; right: 12px; z-index: 30; }
  .map-zoom { top: 71px; right: 12px; z-index: 30; }
  #resetView { display: none !important; }

  /* Szczegóły nie konkurują z arkuszem zdarzeń. */
  body.detail-visible .sidebar {
    visibility: hidden;
    pointer-events: none;
  }
  body.detail-visible .map-top-left,
  body.detail-visible .map-top-right,
  body.detail-visible .map-zoom {
    pointer-events: none;
  }
  .detail-backdrop {
    inset: 0;
    z-index: 90;
  }
  .detail-drawer {
    position: absolute;
    inset: auto 0 0;
    width: 100%;
    max-width: 100%;
    height: min(72%, 600px);
    min-height: 0;
    max-height: calc(100% - 12px);
    z-index: 100;
    border-radius: 24px 24px 0 0;
    overflow: hidden;
  }
  #detailContent {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 0;
    overflow: hidden;
  }
  .detail-head, .detail-footer { flex: 0 0 auto; }
  .detail-body {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }

  /* Informacje systemowe widoczne nad nawigacją, bez przykrywania panelu. */
  .toast-stack {
    position: fixed;
    inset: auto 12px calc(78px + env(safe-area-inset-bottom));
    width: auto;
    max-width: none;
    z-index: 900;
  }
  .toast { width: 100%; max-width: none; }

  /* Gdy formularz jest otwarty, przewijanie dotyczy tylko formularza. */
  .form-dialog {
    min-height: 0;
    max-height: 100dvh;
  }
}
@media (max-width: 430px) {
  .topbar { height: 70px; padding: 0 12px; }
  .brand-mark { width: 42px; height: 42px; }
  .brand-copy strong { font-size: 17px; }
  .brand-copy small { font-size: 7px; }
  .header-cta { width: 43px; height: 43px; min-height: 43px; }
  .map-location { height: 52px; }
  .map-zoom { top: 68px; }
  .sidebar-intro { padding-left: 14px; padding-right: 14px; }
}
@media (max-width: 760px) and (max-height: 650px) {
  .sidebar { height: 175px; }
  .sidebar.is-expanded { height: calc(100% - 6px); }
  .sidebar-intro { padding-bottom: 4px; }
  .mobile-title { font-size: 22px; }
}


/* v0.2.3 — Mobile: zdarzenia widoczne dopiero po kliknięciu, stabilny viewport Safari. */
.mobile-sheet-toggle{display:none}
@media (max-width:760px){
  html,body{height:100%;min-height:0;width:100%;overflow:hidden;overscroll-behavior:none}
  body{position:fixed;top:0;right:0;bottom:0;left:0}
  .app-shell{height:var(--cs-mobile-height,100dvh);min-height:0;max-height:var(--cs-mobile-height,100dvh);width:100%;overflow:hidden;display:flex;flex-direction:column}
  .dashboard{position:relative;flex:1 1 0%;height:auto;min-height:0;overflow:hidden;isolation:isolate}
  .map-shell{position:absolute;inset:0;min-height:0;height:100%;width:100%;overflow:hidden}
  .mobile-nav{position:relative;flex:0 0 calc(70px + env(safe-area-inset-bottom));height:calc(70px + env(safe-area-inset-bottom));min-height:0;margin-top:auto;padding-bottom:env(safe-area-inset-bottom);z-index:210}
  .sidebar{position:absolute;inset:auto 0 0;height:calc(100% - 8px);min-height:0;max-height:calc(100% - 8px);z-index:70;transform:translate3d(0,105%,0);opacity:0;visibility:hidden;pointer-events:none;transition:transform .22s ease,opacity .18s ease,visibility 0s linear .22s;padding-top:48px;overflow:hidden}
  .sidebar.is-expanded{inset:auto 0 0;height:calc(100% - 8px);min-height:0;max-height:calc(100% - 8px);transform:translate3d(0,0,0);opacity:1;visibility:visible;pointer-events:auto;transition:transform .22s ease,opacity .18s ease,visibility 0s}
  .sheet-handle{display:none!important}
  .sidebar-intro{flex:0 0 auto}
  .event-list{flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding-bottom:20px}
  .mobile-sheet-toggle{display:inline-flex;align-items:center;justify-content:center;gap:10px;position:absolute;left:50%;bottom:14px;top:auto;transform:translateX(-50%);z-index:81;min-height:48px;max-width:calc(100% - 28px);white-space:nowrap;padding:0 18px;border-radius:999px;border:1px solid #73cfff;background:linear-gradient(115deg,#173b55,#0e263e);box-shadow:0 8px 28px #0009,0 0 21px #2cbdff25;color:#e8f9ff;font-size:13px;font-weight:800;letter-spacing:.01em;-webkit-tap-highlight-color:transparent}
  .mobile-sheet-toggle .icon{width:18px;height:18px;color:#80dbf8}
  .mobile-sheet-toggle[aria-expanded="true"]{top:17px;bottom:auto;box-shadow:0 5px 24px #0008;background:linear-gradient(115deg,#194d69,#15354e)}
  .mobile-sheet-toggle[aria-expanded="true"] .mobile-sheet-chevron{transform:rotate(180deg)}
  body.detail-visible .mobile-sheet-toggle,body.picking-mode .mobile-sheet-toggle{display:none!important}
  .new-toast{display:none!important}
  .map-bottom-left,.map-bottom-right{display:none}
  .detail-backdrop{bottom:0}
  .detail-drawer{position:absolute;inset:auto 0 0;max-height:calc(100% - 8px);height:min(75%,640px);min-height:0}
  .toast-stack{bottom:calc(84px + env(safe-area-inset-bottom))}
}
@media (max-width:760px) and (prefers-reduced-motion:reduce){.sidebar{transition:none!important}}

/* v0.3 production authorization: login action fits existing desktop/mobile header. */
.map-login{white-space:nowrap;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;min-height:38px;font-size:12px;padding:0 12px}
@media(max-width:760px){.map-login{display:none!important}.top-actions{min-width:0}}

/* v0.5.2 — Only map engine styling; original dashboard and mobile sheet remain unchanged. */
#map.maplibregl-map{position:absolute;inset:0;width:100%;height:100%;min-width:0;min-height:0;overflow:hidden;background:#102a40;touch-action:pan-x pan-y}
#map .maplibregl-canvas-container{width:100%;height:100%}
#map .maplibregl-canvas{display:block;outline:none}
#map .maplibregl-ctrl-attrib{background:#091b2de8;color:#a6cae5;font-size:10px}
#map .maplibregl-ctrl-attrib a{color:#8adfff}
#map .cs-map-marker{width:52px;height:52px;display:grid;place-items:center;padding:0;border:0;background:transparent;cursor:pointer;overflow:visible}
#map .cs-marker-caption{position:absolute;left:54px;top:13px;padding:4px 7px;white-space:nowrap;pointer-events:none;border-radius:7px;border:1px solid #355879;background:#10273cdb;color:#d3efff;font:700 10px var(--font)}
#map .cs-user-location{display:block;width:16px;height:16px;border-radius:50%;border:2px solid #fff;background:#4de6cb;box-shadow:0 0 0 8px #4de6cb33,0 0 20px #4de6cb77}
.mobile-privacy-icon{display:none}
@media(max-width:760px){
  #mapPanel{position:absolute;inset:0;min-width:0;min-height:0;width:100%;height:100%}
  #map{width:100%;height:100%}
  /* Restore the original mobile header icon; the aria-label still explains state. */
  #openFormTop>.icon:not(.mobile-privacy-icon){display:none}
  #openFormTop>.mobile-privacy-icon{display:block}
}

/* v0.5.6 — verified SVG 1200 × 900. Full-screen background and one 4:3
   geographic plane for artwork + pins. Only the fallback map is modified. */
@media (max-width:760px){
  #mapFallback{
    position:absolute;inset:0;width:100%;height:100%;overflow:hidden;
    background:radial-gradient(ellipse 85% 74% at 50% 49%,#123353 0%,#0d273f 61%,#071625 100%);
  }
  /* Continue the map's subtle geographic grid beyond the SVG edges. */
  #mapFallback::before{
    content:"";position:absolute;inset:-45%;z-index:0;pointer-events:none;
    background-image:linear-gradient(90deg,#17406569 1px,transparent 1px),linear-gradient(0deg,#17406569 1px,transparent 1px);
    background-size:72px 72px;opacity:.40;transform:rotate(-13deg);
  }
  #mapFallback #fallbackMapWorld{
    position:absolute;inset:auto;left:50%;top:50%;right:auto;bottom:auto;
    box-sizing:border-box;min-width:0;min-height:0;max-width:none;max-height:none;
    width:165%;height:auto;aspect-ratio:4 / 3;z-index:1;
    transform:translate(calc(-50% + var(--drag-x,0px)),calc(-50% + var(--drag-y,0px))) scale(var(--fallback-scale,1));
    transform-origin:center center;
  }
  #mapFallback #fallbackMapWorld > .fallback-map-svg{
    position:absolute;inset:0;display:block;width:100%;height:100%;max-width:none;max-height:none;
    /* The JS sets the WORLD to the SVG's actual 4:3 ratio; never stretch it. */
    object-fit:fill;user-select:none;pointer-events:none;
    /* Background extends across the panel, while the original SVG artwork
       fades into it without an obvious 1200×900 rectangle. Never mask pins. */
    -webkit-mask-image:radial-gradient(ellipse farthest-side at 50% 50%,#000 70%,transparent 100%);
    mask-image:radial-gradient(ellipse farthest-side at 50% 50%,#000 70%,transparent 100%);
  }
  #mapFallback #fallbackMapWorld > .fallback-pins{
    position:absolute;inset:0;width:100%;height:100%;
  }
  #mapPanel .map-error{z-index:420}
}

/* v0.5.7 — desktop event mode + accessible scrolling details. */
@media (min-width:761px) {
  .dashboard.events-view {grid-template-columns:minmax(440px,min(64vw,810px)) minmax(0,1fr)}
  .dashboard.events-view .sidebar {z-index:60}
  .dashboard.events-view .event-list {scrollbar-width:thin}
  .detail-drawer {
    position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%);
    width:min(680px,calc(100% - 36px));height:min(750px,calc(100% - 32px));
    max-width:calc(100% - 36px);max-height:calc(100% - 32px);min-height:0;
    display:flex;flex-direction:column;
  }
  .detail-drawer #detailContent {height:100%;min-height:0;display:flex;flex-direction:column;overflow:hidden}
  .detail-drawer .detail-head,.detail-drawer .detail-footer {flex:0 0 auto}
  .detail-drawer .detail-body {flex:1 1 auto;min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}
  .detail-drawer .detail-rows>div {grid-template-columns:minmax(0,1fr) minmax(0,1.3fr)}
  .detail-drawer .detail-rows strong {min-width:0;overflow-wrap:anywhere}
}
/* v0.5.7 — reuse login action as mobile login/logout icon, not an add button. */
@media(max-width:760px){
  .top-actions .map-login.account-action {
    display:inline-flex!important;align-items:center;justify-content:center;
    width:48px;height:48px;min-height:48px;min-width:48px;padding:0;
    border-radius:13px;border:1px solid #8ecfff8e;
    background:linear-gradient(115deg,#4bd6f6,#5096fa);color:#062139;
  }
  .map-login.account-action>.icon{width:23px;height:23px}
  .map-login.account-action .account-text{display:none!important}
  html,body{touch-action:pan-x pan-y;-webkit-text-size-adjust:100%}
  button,a,#mapPanel,.map-fallback{touch-action:manipulation}
  #map{touch-action:pan-x pan-y}
  .detail-drawer #detailContent{display:flex;flex-direction:column;height:100%;min-height:0;overflow:hidden}
  .detail-drawer .detail-body{flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch}
}
.cs-town-field{margin:8px 0 14px}
.cs-town-field input{font-size:16px;min-height:44px}

/* v0.6.1: desktop dialog is mounted in <body>, outside the clipped map-shell. */
@media (min-width:761px){
  .dashboard.events-view{grid-template-columns:minmax(440px,min(70vw,960px)) minmax(0,1fr)}
  body>.detail-backdrop:not([hidden]){position:fixed;inset:0;z-index:1004;background:#020913a8;backdrop-filter:blur(3px)}
  body>.detail-drawer:not([hidden]){
    position:fixed;top:50%;left:50%;right:auto;bottom:auto;
    transform:translate(-50%,-50%);
    width:min(760px,calc(100vw - 48px));max-width:calc(100vw - 48px);
    height:min(82dvh,820px);max-height:calc(100dvh - 36px);min-height:0;
    z-index:1005;display:flex;flex-direction:column;overflow:hidden;
  }
  body>.detail-drawer #detailContent{display:flex;flex-direction:column;min-height:0;height:100%;overflow:hidden}
  body>.detail-drawer .detail-head,body>.detail-drawer .detail-footer{flex:0 0 auto}
  body>.detail-drawer .detail-body{
    flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;
    overscroll-behavior:contain;scrollbar-width:thin;
  }
}

/* v0.7.0 — licznik zgłoszeń na znaczniku powiatu */
.event-marker.county-marker { --pin-bg:#1c658b; --pin-border:#8cddff; --pin-text:#ecfbff; --pin-glow:#2bc9ffa8; --pin-halo:#38aef321; }
.event-marker .marker-count-badge { position:absolute;z-index:4;top:-1px;right:-3px;display:grid;place-items:center;min-width:21px;height:21px;padding:0 4px;border-radius:100px;background:#eafaff;color:#092c41;border:2px solid #0b2940;box-shadow:0 2px 10px #0009;font:900 11px/1 var(--font);font-variant-numeric:tabular-nums;pointer-events:none; }
.county-marker + .cs-marker-caption {font-weight:800;}

/* v0.9: publiczny punkt Wypadku/Kolizji */
.exact-location-section{margin:18px 0;padding:18px;border:1px solid rgba(85,148,235,.35);border-radius:16px;background:rgba(32,91,165,.08)}
.exact-location-section h3{margin:0 0 8px}.exact-location-section h3 span{font-size:.8em;font-weight:400}.exact-location-section p{line-height:1.5}.exact-location-section button{margin:8px 8px 8px 0}.exact-picker-map{height:300px;min-height:260px;width:100%;border-radius:12px;overflow:hidden;border:1px solid rgba(85,148,235,.45)}
@media(max-width:600px){.exact-picker-map{height:270px}}
