*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;overflow:hidden}#app{display:grid;grid-template-rows:50px 1fr auto;grid-template-columns:300px 1fr;height:100vh}#header{grid-column:1 / -1;background:#1a365d;color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 20px;min-height:50px}#header h1{font-size:1.2rem;font-weight:600}#header-info{display:flex;flex-direction:column;gap:2px;align-items:flex-end}#coordinates,#dd-display{font-family:monospace;font-size:.9rem;background:#ffffff1a;padding:4px 12px;border-radius:4px}#coordinates .ol-control{position:static;background:none;padding:0}#coordinates .ol-control .ol-mouse-position{color:inherit;font-family:inherit;font-size:inherit}#sidebar{background:#f7fafc;padding:15px;overflow-y:auto;border-right:1px solid #e2e8f0}#sidebar h2{font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:#718096;margin:15px 0 8px;padding-bottom:5px;border-bottom:1px solid #e2e8f0}#sidebar h2:first-child{margin-top:0}#layer-tree{display:flex;flex-direction:column;gap:2px}.layer-group{background:#fff;border-radius:6px;border:1px solid #e2e8f0;overflow:hidden}.layer-group-header{display:flex;align-items:center;padding:8px 10px;background:#edf2f7;cursor:pointer;font-weight:500;font-size:.85rem;-webkit-user-select:none;user-select:none}.layer-group-header:hover{background:#e2e8f0}.layer-group-toggle{width:16px;height:16px;margin-right:6px;display:flex;align-items:center;justify-content:center;transition:transform .2s}.layer-group.collapsed .layer-group-toggle{transform:rotate(-90deg)}.layer-group-content{padding:4px;display:flex;flex-direction:column;gap:2px}.layer-group.collapsed .layer-group-content{display:none}.layer-subgroup{border:none;background:transparent}.layer-subgroup .layer-group-header{background:#f7fafc;padding:6px 10px;font-size:.8rem;font-weight:400}.layer-subgroup .layer-group-header:hover{background:#edf2f7}.layer-subgroup .layer-group-header input[type=checkbox]{margin-right:6px}.layer-item{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:4px;cursor:pointer;font-size:.85rem}.layer-item:hover{background:#edf2f7}.layer-item.active{background:#ebf8ff;border:1px solid #4299e1;margin:-1px}.layer-item input[type=checkbox]{width:16px;height:16px;flex-shrink:0}.layer-item label{flex:1;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.layer-item .layer-color{width:12px;height:12px;border-radius:3px;flex-shrink:0}.layer-item .layer-actions{display:none;gap:4px}.layer-item:hover .layer-actions{display:flex}.layer-action-btn{width:20px;height:20px;border:none;background:#e2e8f0;border-radius:3px;cursor:pointer;font-size:12px;display:flex;align-items:center;justify-content:center}.layer-action-btn:hover{background:#cbd5e0}.layer-action-btn.delete:hover{background:#fc8181;color:#fff}#add-layer-btn{width:100%;padding:8px;margin-top:8px;border:1px dashed #cbd5e0;border-radius:6px;background:transparent;cursor:pointer;font-size:.85rem;color:#718096}#add-layer-btn:hover{border-color:#4299e1;color:#4299e1;background:#ebf8ff}#tools{display:grid;grid-template-columns:1fr 1fr;gap:6px}.tool-btn{padding:8px;border:1px solid #e2e8f0;border-radius:6px;background:#fff;cursor:pointer;font-size:.8rem;transition:all .2s}.tool-btn:hover{border-color:#4299e1;background:#ebf8ff}.tool-btn.active{background:#4299e1;color:#fff;border-color:#4299e1}#measurement-result{background:#fff;border-radius:6px;padding:10px;border:1px solid #e2e8f0;min-height:60px;font-size:.85rem}#gps-section{margin-bottom:8px}#gps-buttons{display:flex;gap:6px}#gps-buttons .tool-btn{flex:1;padding:8px 6px}#gps-info{margin-top:6px;padding:6px 8px;background:#2b6cb01a;border-radius:4px;font-family:monospace;font-size:.8rem;color:#2b6cb0;line-height:1.4}#zoom-control input{width:100%;padding:6px 8px;border:1px solid #e2e8f0;border-radius:4px;font-family:monospace;font-size:.9rem}#eksport-import{display:flex;flex-direction:column;gap:6px}#eksport-import .tool-btn{width:100%}#measurement-result .value{font-size:1.1rem;font-weight:600;color:#2d3748}#measurement-result .unit{color:#718096;margin-left:4px}#measurement-result small{color:#a0aec0}#feature-info{background:#fff;border-radius:6px;padding:10px;border:1px solid #e2e8f0;min-height:80px;font-size:.85rem}#feature-info:empty:before{content:"Klikk på et objekt for info";color:#a0aec0;font-style:italic}#map-container{position:relative;overflow:hidden}#map{width:100%;height:100%}#infobar-toggle{position:absolute;bottom:0;left:0;right:0;width:100%;height:24px;background:#1a365d;color:#a0c4e8;border:none;cursor:pointer;font-size:.65rem;z-index:10;display:flex;align-items:center;justify-content:center;transition:background .15s}#infobar-toggle:hover{background:#2c5282;color:#fff}#infobar{grid-column:1 / -1;background:#1a365d;color:#fff;display:flex;align-items:center;font-size:.8rem;overflow:hidden;white-space:nowrap;height:28px}#infobar.infobar-hidden{display:none}#infobar-content{overflow:hidden;text-overflow:ellipsis;padding:6px 15px;flex:1}#infobar-content strong{margin-right:6px}.infobar-type{color:#a0c4e8;font-size:.75rem}.infobar-hint{color:#718096;font-style:italic}#infobar-content em{color:#a0c4e8}.hover-tooltip{display:none;position:relative;background:#1a365df2;color:#fff;padding:6px 10px;border-radius:4px;font-size:.8rem;max-width:250px;white-space:normal;box-shadow:0 2px 8px #0000004d;pointer-events:none}.form-group{display:flex;flex-direction:column;gap:4px;margin-bottom:12px}.form-group label{font-size:.8rem;color:#4a5568;font-weight:500}.form-group select,.form-group textarea{width:100%;padding:8px;border:1px solid #e2e8f0;border-radius:4px;font-size:.85rem;font-family:inherit}.form-group textarea{resize:vertical;min-height:60px}.modal{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal.hidden{display:none}.modal-content{background:#fff;padding:20px;border-radius:8px;min-width:300px}.modal-content h3{margin-bottom:15px;font-size:1rem}.modal-content input[type=text],.modal-content input[type=number]{width:100%;padding:10px;border:1px solid #e2e8f0;border-radius:4px;font-size:.9rem;margin-bottom:0}.form-row{display:flex;gap:12px;margin-bottom:12px}.form-row .form-group{flex:1;margin-bottom:0}.form-group-effects{display:flex;flex-direction:column;gap:4px}.checkbox-row{display:flex;gap:12px;align-items:center;padding-top:4px}.checkbox-label{display:flex;align-items:center;gap:4px;font-size:.85rem;cursor:pointer}.checkbox-label input[type=checkbox]{width:16px;height:16px;cursor:pointer}.form-group input[type=color]{width:100%;height:34px;padding:2px;border:1px solid #e2e8f0;border-radius:4px;cursor:pointer}.text-modal-content{max-width:440px;width:100%}.text-modal-content h3,.text-modal-content input[type=text]{margin-bottom:12px}.modal-content input[type=number]{-moz-appearance:textfield}.modal-content input[type=number]::-webkit-outer-spin-button,.modal-content input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.color-picker{display:flex;align-items:center;gap:10px;margin-bottom:15px}.color-picker label{font-size:.85rem;color:#718096}.color-picker input[type=color]{width:40px;height:30px;border:1px solid #e2e8f0;border-radius:4px;cursor:pointer}.modal-buttons{display:flex;justify-content:flex-end;gap:10px}.modal-buttons button{padding:8px 16px;border:none;border-radius:4px;cursor:pointer;font-size:.85rem}#text-cancel,#layer-cancel,#innm-cancel{background:#e2e8f0}#text-cancel:hover,#layer-cancel:hover,#innm-cancel:hover{background:#cbd5e0}#text-ok,#layer-ok,#innm-ok{background:#4299e1;color:#fff}#text-ok:hover,#layer-ok:hover,#innm-ok:hover{background:#3182ce}.ol-control button{background-color:#1a365d!important}.ol-control button:hover{background-color:#2c5282!important}.ol-scale-line{background:#1a365de6!important;border-radius:4px;padding:2px}.ol-scale-line-inner{border-color:#fff!important;color:#fff!important;font-size:10px!important}.ol-rotate{display:none!important}#desc-cancel{background:#e2e8f0}#desc-cancel:hover{background:#cbd5e0}#desc-ok{background:#4299e1;color:#fff}#desc-ok:hover{background:#3182ce}#sidebar-toggle{background:none;border:none;color:#fff;font-size:1.4rem;cursor:pointer;padding:4px 8px;border-radius:4px;margin-right:8px;display:none}#sidebar-toggle:hover{background:#ffffff26}.login-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#1a365df2;display:flex;align-items:center;justify-content:center;z-index:2000}.login-overlay.hidden{display:none}.login-form{background:#fff;padding:30px;border-radius:10px;width:320px;text-align:center}.login-form h2{margin:0 0 8px;color:#1a365d;font-size:1.2rem}.login-form p{color:#718096;font-size:.85rem;margin-bottom:16px}.login-form input[type=password]{width:100%;padding:10px;border:1px solid #e2e8f0;border-radius:4px;font-size:.95rem;margin-bottom:8px;box-sizing:border-box}#login-error{color:#e53e3e;font-size:.8rem;min-height:20px;margin-bottom:8px}.login-form button[type=submit]{width:100%;padding:10px;background:#4299e1;color:#fff;border:none;border-radius:4px;font-size:.95rem;cursor:pointer}.login-form button[type=submit]:hover{background:#3182ce}@media (max-width: 768px){#sidebar-toggle{display:block}#app{grid-template-columns:1fr}#sidebar{position:fixed;top:50px;left:0;bottom:0;width:300px;z-index:100;transform:translate(-100%);transition:transform .25s ease;box-shadow:4px 0 15px #00000026}#sidebar.sidebar-open{transform:translate(0)}#header h1{font-size:1rem}#header-info{display:none}.login-form{width:280px;padding:20px}}@media print{#header,#sidebar,#infobar,.ol-control,.hover-tooltip,.modal{display:none!important}#app{grid-template-columns:1fr!important;grid-template-rows:1fr!important;height:auto}#map-container{overflow:visible!important}#map{width:100%;height:100vh}}:root,:host{--ol-background-color: white;--ol-accent-background-color: #F5F5F5;--ol-subtle-background-color: rgba(128, 128, 128, .25);--ol-partial-background-color: rgba(255, 255, 255, .75);--ol-foreground-color: #333333;--ol-subtle-foreground-color: #666666;--ol-brand-color: #00AAFF}.ol-box{box-sizing:border-box;border-radius:2px;border:1.5px solid var(--ol-background-color);background-color:var(--ol-partial-background-color)}.ol-mouse-position{top:8px;right:8px;position:absolute}.ol-scale-line{background:var(--ol-partial-background-color);border-radius:4px;bottom:8px;left:8px;padding:2px;position:absolute}.ol-scale-line-inner{border:1px solid var(--ol-subtle-foreground-color);border-top:none;color:var(--ol-foreground-color);font-size:10px;text-align:center;margin:1px;will-change:contents,width;transition:all .25s}.ol-scale-bar{position:absolute;bottom:8px;left:8px}.ol-scale-bar-inner{display:flex}.ol-scale-step-marker{width:1px;height:15px;background-color:var(--ol-foreground-color);float:right;z-index:10}.ol-scale-step-text{position:absolute;bottom:-5px;font-size:10px;z-index:11;color:var(--ol-foreground-color);text-shadow:-1.5px 0 var(--ol-partial-background-color),0 1.5px var(--ol-partial-background-color),1.5px 0 var(--ol-partial-background-color),0 -1.5px var(--ol-partial-background-color)}.ol-scale-text{position:absolute;font-size:12px;text-align:center;bottom:25px;color:var(--ol-foreground-color);text-shadow:-1.5px 0 var(--ol-partial-background-color),0 1.5px var(--ol-partial-background-color),1.5px 0 var(--ol-partial-background-color),0 -1.5px var(--ol-partial-background-color)}.ol-scale-singlebar{position:relative;height:10px;z-index:9;box-sizing:border-box;border:1px solid var(--ol-foreground-color)}.ol-scale-singlebar-even{background-color:var(--ol-subtle-foreground-color)}.ol-scale-singlebar-odd{background-color:var(--ol-background-color)}.ol-unsupported{display:none}.ol-viewport,.ol-unselectable{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.ol-viewport canvas{all:unset;overflow:hidden}.ol-viewport{touch-action:pan-x pan-y}.ol-selectable{-webkit-touch-callout:default;-webkit-user-select:text;-moz-user-select:text;user-select:text}.ol-grabbing{cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.ol-grab{cursor:move;cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.ol-control{position:absolute;background-color:var(--ol-subtle-background-color);border-radius:4px}.ol-zoom{top:.5em;left:.5em}.ol-rotate{top:.5em;right:.5em;transition:opacity .25s linear,visibility 0s linear}.ol-rotate.ol-hidden{opacity:0;visibility:hidden;transition:opacity .25s linear,visibility 0s linear .25s}.ol-zoom-extent{top:4.643em;left:.5em}.ol-full-screen{right:.5em;top:.5em}.ol-control button{display:block;margin:1px;padding:0;color:var(--ol-subtle-foreground-color);font-weight:700;text-decoration:none;font-size:inherit;text-align:center;height:1.375em;width:1.375em;line-height:.4em;background-color:var(--ol-background-color);border:none;border-radius:2px}.ol-control button::-moz-focus-inner{border:none;padding:0}.ol-zoom-extent button{line-height:1.4em}.ol-compass{display:block;font-weight:400;will-change:transform}.ol-touch .ol-control button{font-size:1.5em}.ol-touch .ol-zoom-extent{top:5.5em}.ol-control button:hover,.ol-control button:focus{text-decoration:none;outline:1px solid var(--ol-subtle-foreground-color);color:var(--ol-foreground-color)}.ol-zoom .ol-zoom-in{border-radius:2px 2px 0 0}.ol-zoom .ol-zoom-out{border-radius:0 0 2px 2px}.ol-attribution{text-align:right;bottom:.5em;right:.5em;max-width:calc(100% - 1.3em);display:flex;flex-flow:row-reverse;align-items:center}.ol-attribution a{color:var(--ol-subtle-foreground-color);text-decoration:none}.ol-attribution ul{margin:0;padding:1px .5em;color:var(--ol-foreground-color);text-shadow:0 0 2px var(--ol-background-color);font-size:12px}.ol-attribution li{display:inline;list-style:none}.ol-attribution li:not(:last-child):after{content:" "}.ol-attribution img{max-height:2em;max-width:inherit;vertical-align:middle}.ol-attribution button{flex-shrink:0}.ol-attribution.ol-collapsed ul{display:none}.ol-attribution:not(.ol-collapsed){background:var(--ol-partial-background-color)}.ol-attribution.ol-uncollapsible{bottom:0;right:0;border-radius:4px 0 0}.ol-attribution.ol-uncollapsible img{margin-top:-.2em;max-height:1.6em}.ol-attribution.ol-uncollapsible button{display:none}.ol-zoomslider{top:4.5em;left:.5em;height:200px}.ol-zoomslider button{position:relative;height:10px}.ol-touch .ol-zoomslider{top:5.5em}.ol-overviewmap{left:.5em;bottom:.5em}.ol-overviewmap.ol-uncollapsible{bottom:0;left:0;border-radius:0 4px 0 0}.ol-overviewmap .ol-overviewmap-map,.ol-overviewmap button{display:block}.ol-overviewmap .ol-overviewmap-map{border:1px solid var(--ol-subtle-foreground-color);height:150px;width:150px}.ol-overviewmap:not(.ol-collapsed) button{bottom:0;left:0;position:absolute}.ol-overviewmap.ol-collapsed .ol-overviewmap-map,.ol-overviewmap.ol-uncollapsible button{display:none}.ol-overviewmap:not(.ol-collapsed){background:var(--ol-subtle-background-color)}.ol-overviewmap-box{border:1.5px dotted var(--ol-subtle-foreground-color)}.ol-overviewmap .ol-overviewmap-box:hover{cursor:move}
