:root{--bg:#f6f3fb;--panel:#fff;--panel-soft:#f0ecf9;--border:#e3ddf2;--text:#4a4458;--text-soft:#857e94;--heading:#362f45;--lavender:#c9b6f2;--lavender-strong:#a98af0;--blue:#bfd8f5;--mint:#bdeada;--peach:#ffd9c2;--coral:#ff9e9e;--coral-strong:#ff8080;--shadow-sm:0 2px 8px #5a468c14;--shadow-md:0 8px 24px #5a468c1f;--sans:"Segoe UI", system-ui, Roboto, sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--text);background:var(--bg);font:16px/1.5 var(--sans);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html,body,#root{overscroll-behavior:none;height:100%;margin:0}h1,h2,h3{color:var(--heading);margin:0;font-weight:600}button{font-family:inherit}.app{flex-direction:column;height:100dvh;display:flex;overflow:hidden}.app-header{background:var(--panel);border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:baseline;gap:14px;padding:14px 22px;display:flex}.brand{align-items:center;gap:10px;display:flex}.brand-dot{background:linear-gradient(135deg, var(--lavender), var(--blue));width:14px;height:14px;box-shadow:var(--shadow-sm);border-radius:50%}.app-header h1{font-size:22px}.tagline{color:var(--text-soft);margin:0;font-size:14px}.app-main{flex:1;min-height:0;display:flex}.viewer-area{background:radial-gradient(circle at 50% 30%, #fbfaff 0%, var(--bg) 70%);flex:1;min-width:0;display:flex;position:relative}.canvas-wrap{flex:1;width:100%;height:100%}.canvas-wrap.mode-plasser{cursor:crosshair}.canvas-wrap.mode-fjern{cursor:pointer}.canvas-wrap.mode-naviger{cursor:grab}.upload-prompt{text-align:center;background:var(--panel);border:1.5px dashed var(--lavender);max-width:360px;box-shadow:var(--shadow-sm);border-radius:24px;margin:auto;padding:40px 32px}.upload-icon{color:var(--lavender-strong);margin-bottom:8px;font-size:40px}.upload-prompt h2{margin-bottom:8px;font-size:19px}.upload-prompt p{color:var(--text-soft);margin:0 0 20px;font-size:14px}.upload-actions{flex-direction:column;gap:10px;display:flex}.hint-banner{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid var(--border);color:var(--text);box-shadow:var(--shadow-sm);pointer-events:none;white-space:nowrap;text-overflow:ellipsis;background:#ffffffeb;border-radius:999px;max-width:calc(100% - 32px);padding:9px 18px;font-size:13.5px;position:absolute;bottom:18px;left:50%;overflow:hidden;transform:translate(-50%)}.error-banner{border:1px solid var(--coral);color:#a8493f;background:#fff0ee;border-radius:12px;padding:8px 16px;font-size:13.5px;position:absolute;top:18px;left:50%;transform:translate(-50%)}.side-panel{background:var(--panel);border-left:1px solid var(--border);flex-direction:column;flex-shrink:0;gap:18px;width:300px;padding:18px;display:flex;overflow-y:auto}.panel-block{flex-direction:column;gap:8px;display:flex}.panel-label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-soft);align-items:center;gap:8px;font-size:12.5px;font-weight:600;display:flex}.value-pill{background:var(--panel-soft);color:var(--text);text-transform:none;letter-spacing:normal;border-radius:999px;padding:1px 9px;font-size:12px;font-weight:600}.panel-help{color:var(--text-soft);margin:0;font-size:12.5px;line-height:1.4}.file-name{color:var(--text-soft);text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;overflow:hidden}.btn{cursor:pointer;border:none;border-radius:12px;padding:10px 16px;font-size:14px;font-weight:600;transition:transform 80ms,box-shadow .15s,opacity .15s}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.45;cursor:not-allowed;transform:none}.btn-block{width:100%}.btn-row{gap:8px;display:flex}.btn-row .btn{flex:1}.btn-primary{background:linear-gradient(135deg, var(--lavender-strong), var(--blue));color:#fff;box-shadow:var(--shadow-sm)}.btn-secondary{background:var(--panel-soft);color:var(--text)}.btn-ghost{color:var(--lavender-strong);border:1.5px solid var(--lavender);background:0 0}.btn-danger{color:#b5433a;background:#ffe3df}.btn-small{border-radius:9px;padding:6px 10px;font-size:12.5px}.point-panel{background:var(--panel);border-left:1px solid var(--border);flex-direction:column;flex-shrink:0;gap:10px;width:240px;padding:18px;display:flex;overflow-y:auto}.point-panel-header{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px 12px;padding-bottom:10px;display:flex}.bulk-actions{gap:12px;display:flex}.link-btn{color:var(--text-soft);text-underline-offset:2px;cursor:pointer;background:0 0;border:none;padding:0;font-size:12px;font-weight:600;text-decoration:underline}.link-btn:hover{color:var(--lavender-strong)}.link-btn-danger:hover{color:#b5433a}.point-list{flex-direction:column;gap:8px;padding-right:2px;display:flex;overflow-y:auto}.point-row{background:var(--panel-soft);border-radius:12px;flex-direction:column;gap:6px;padding:10px 12px;display:flex}.point-row-top{justify-content:space-between;align-items:center;display:flex}.point-name{color:var(--text);font-size:13px;font-weight:600}.point-row .slider{height:4px}.point-row .btn-row{gap:6px}.point-row .btn{flex:1}.mode-switch{flex-direction:column;gap:6px;display:flex}.mode-btn{border:1.5px solid var(--border);background:var(--panel);color:var(--text);text-align:left;cursor:pointer;border-radius:12px;padding:9px 12px;font-size:13.5px;font-weight:600}.mode-btn.active{border-color:var(--lavender-strong);background:var(--panel-soft);color:var(--lavender-strong)}.slider{width:100%;accent-color:var(--lavender-strong)}.panel-footer{border-top:1px solid var(--border);margin-top:auto;padding-top:12px}.panel-footer p{color:var(--text-soft);margin:0;font-size:12px}@media (width<=780px){.app-main{flex-direction:column}.viewer-area{flex:1;min-height:0}.side-panel,.point-panel{border-left:none;border-top:1px solid var(--border);flex-flow:wrap;align-content:flex-start;width:100%;max-height:40vh}.panel-block{flex:220px}.point-panel-header{flex:100%}.point-list{flex:100%;max-height:none}.panel-footer{display:none}.app-header{padding:10px 16px}.app-header h1{font-size:18px}.tagline{display:none}}
