:root{--font-family:"Montserrat",sans-serif;--color-primary:#0b2d42;--color-secondary:#5fa8d3;--color-yellow:#ffd485;--color-inactive:#25516d;--color-light:#f9f9f9;--color-dark:#222;--shadow:rgba(0,0,0,.1);--topbar-h:4.5rem;--subbar-h:4rem;--app-top-offset:calc(var(--topbar-h) + var(--subbar-h))}body.auth-layout .auth-container,body.booting #root{align-items:center;display:flex;justify-content:center;min-height:100vh}body{background:#fff;color:var(--color-dark);font-family:var(--font-family);margin:0}body.app-layout{padding-top:var(--app-top-offset)}body.auth-layout{padding-top:0}.top-bar{align-items:flex-start;background:var(--color-primary);box-shadow:0 2px 4px var(--shadow);color:#fff;display:flex;flex-direction:column;height:4.5rem;left:0;padding:.5rem 1.5rem;position:fixed;right:0;top:0;z-index:1000}.app-title{color:#699dbb;font-size:1rem;font-weight:700;margin-bottom:.3rem}.nav-icons{display:flex;gap:1rem;padding-left:.2rem}.icon{align-items:center;border-radius:50%;color:#699dbb;cursor:pointer;display:flex;font-size:27px;height:45px;justify-content:center;position:relative;transition:transform .2s ease;width:45px}.icon:hover{transform:scale(1.2)}.icon.active{color:var(--color-yellow)}.icon.active i:after,.icon.active svg:after{border-bottom:2px solid var(--color-yellow);bottom:0;content:"";height:1px;left:11px;position:absolute;width:50%}.tooltip{border-radius:4px;bottom:-20px;color:var(--color-primary);font-size:.7rem;font-weight:700;opacity:0;padding:4px 6px;pointer-events:none;transform:translateY(5px);transition:all .25s ease;white-space:nowrap}.tooltip,.tooltip:after{background:var(--color-yellow);position:absolute}.tooltip:after{content:"";height:8px;left:50%;top:-4px;transform:translateX(-50%) rotate(45deg);width:8px}.icon:hover .tooltip{opacity:1;transform:translateY(0)}.sub-bar{background:var(--color-secondary);box-shadow:0 2px 6px var(--shadow);height:4rem;left:0;position:fixed;right:0;top:5.5rem;z-index:990}.sub-bar,.subbar-content{align-items:center;display:flex;justify-content:center}.subbar-content{gap:1.5rem}.subbar-content .icon{align-items:center;border-radius:50%;color:var(--color-primary);cursor:pointer;display:flex;flex-shrink:0;font-size:1.7rem;height:48px;justify-content:center;transition:transform .2s ease,color .2s ease;width:48px}.subbar-content .icon:hover{transform:scale(1.2)}.subbar-content .is-open .icon{color:var(--color-light);height:48px;width:48px}.subbar-content .is-open .icon i:after{border-bottom:2px solid var(--color-light);bottom:2px;content:"";height:1px;left:11px;position:absolute;width:50%}.subbar-content .is-open .icon-submenu .icon i:after{border-bottom:0 solid var(--color-light)}.subbar-content .is-open .icon-submenu .icon{color:var(--color-primary);transform:scale(1)}.subbar-content .icon .tooltip{background:var(--color-yellow);border-radius:4px;bottom:-20px;color:var(--color-primary);font-size:.7rem;font-weight:700;opacity:0;padding:4px 6px;pointer-events:none;position:absolute;transform:translateY(5px);transition:all .25s ease;white-space:nowrap}.subbar-content .icon .tooltip:after{background:var(--color-yellow);content:"";height:8px;left:50%;position:absolute;top:-4px;transform:translateX(-50%) rotate(45deg);width:8px}.subbar-content .icon:hover .tooltip{opacity:1;transform:translateY(0)}.tab-content{padding:4rem}.hidden{display:none}.action-icons{color:var(--color-primary);display:flex;font-size:1.2rem;gap:1rem}.action-icons i,.action-icons svg{background:var(--color-primary);border-radius:50%;box-shadow:0 2px 4px var(--shadow);cursor:pointer;padding:.6rem;transition:transform .2s ease}.action-icons i:hover,.action-icons svg:hover{transform:scale(1.1)}#mapSidebar{background:var(--color-secondary);box-shadow:0 2px 6px var(--shadow);flex-wrap:wrap;gap:1rem;height:3rem;left:0;padding:.5rem 1rem;right:0;top:5.5rem;z-index:998}#mapSidebar,.modal-overlay{align-items:center;display:flex;justify-content:center;position:fixed}.modal-overlay{background:rgba(0,0,0,.4);inset:0;transition:opacity .2s ease-in-out;z-index:1000}.modal-overlay.hidden{display:none;opacity:0}.modal-box{animation:scaleIn .2s ease-in-out;background:#fff;border-radius:12px;box-shadow:0 8px 16px rgba(0,0,0,.3);font-family:Montserrat,sans-serif;max-width:400px;padding:2em;width:90%}.modal-box h2{color:#07a;font-size:1.2em;font-weight:600;margin-top:0}.modal-box p{color:#333;font-size:1em;margin:1em 0}.modal-buttons{display:flex;gap:1em;justify-content:flex-end;margin-top:1.5em}.modal-buttons button{background-color:#07a;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.95em;padding:.4em 1em;transition:background-color .2s ease}.modal-buttons button:hover{background-color:#005d88}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.icon-group{display:inline-block;position:relative}.icon-submenu{background:#e5e5e5;border:1px solid var(--color-secondary);border-radius:0 0 8px 8px;box-shadow:0 2px 5px rgba(0,0,0,.2);display:none;gap:10px;left:0;padding:6px;position:absolute;top:115%;transform:translateX(-45%);z-index:10}.icon-submenu .icon{align-items:center;display:flex;justify-content:center;margin:0}.icon-submenu .icon i:before{color:var(--color-primary)}.table-group.is-open .icon-submenu i,.table-group.is-open .icon-submenu svg{height:30px;width:30px}.icon-group.is-open .icon-submenu{display:flex;flex-direction:row}.scroll-highlight{outline:3px dashed orange;transition:outline .2s ease-in-out}.rnone{display:none!important}.help-dialog{background:var(--bg,#0b0f14);border:0;box-shadow:0 20px 60px rgba(0,0,0,.5);color:var(--fg,#e6ebf0);height:min(80vh,900px);padding:0;width:min(980px,90vw)}.help-dialog::backdrop{background:rgba(0,0,0,.6)}.help-header{align-items:center;background-color:var(--color-inactive);border-bottom:1px solid hsla(0,0%,100%,.08);display:flex;gap:.75rem;padding:.75rem 1rem;position:sticky;top:0;z-index:1}.help-header .spacer{flex:1}.help-body{height:calc(100% - 56px)}#helpFrame{border:0;height:100%;width:100%}.btn-icon,.btn-link{background:transparent;border:0;color:inherit;cursor:pointer;font:inherit;opacity:.9}.btn-icon:hover,.btn-link:hover{opacity:1;text-decoration:underline}