:root{--bg: #ffffff;--fg: #111111;--muted: #6b6b6b;--line: #e4e4e4;--hover: #f5f5f5;--active: #ececec;--sidebar-w: 248px;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--radius-sm: 10px;--radius-md: 16px;--radius-pill: 999px}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--font-sans);font-size:14px;line-height:1.5;letter-spacing:-.006em;-webkit-font-smoothing:antialiased}button{font:inherit;color:inherit;background:none;border:none;cursor:pointer;padding:0}input,textarea,select{font:inherit;color:var(--fg);background:var(--bg);border:1px solid var(--line);border-radius:var(--radius-sm);padding:8px 10px;width:100%}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 6l4 4 4-4' fill='none' stroke='%23111111' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:14px;padding-right:36px}input:focus,textarea:focus,select:focus{outline:2px solid var(--fg);outline-offset:-1px}a{color:inherit;text-decoration:none}b,strong{font-weight:500}.app{display:flex;height:100%}.main{flex:1;min-width:0;overflow-y:auto;padding:24px 28px 80px}.sidebar{width:var(--sidebar-w);flex-shrink:0;border-right:1px solid var(--line);display:flex;flex-direction:column;overflow-y:auto;padding:16px 10px;gap:2px;background:var(--bg)}.sidebar .brand{font-weight:500;font-size:17px;letter-spacing:-.01em;padding:6px 10px 14px;display:block}.side-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--radius-sm);width:100%;text-align:left;text-decoration:none;font-weight:500}.side-item:hover{background:var(--hover)}.side-item.active{background:var(--active)}.side-item .caret{margin-left:auto}.side-sub{display:flex;flex-direction:column;gap:1px;margin:2px 0 6px}.side-sub .side-item{padding-left:34px;font-weight:400}.side-sub .side-item.new{color:var(--muted)}.sidebar .spacer{flex:1}.side-form{padding:4px 10px 8px 34px}.auth-row{display:flex;align-items:center;gap:8px;padding:8px 10px 2px}.auth-row .auth-email{font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.topbar{display:none;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--bg);z-index:20}.topbar .brand{font-weight:500;font-size:16px}.scrim{display:none}@media (max-width: 800px){.app{flex-direction:column}.hint{display:none}.tabs{flex-wrap:wrap;overflow-x:visible;row-gap:2px}.topbar{display:flex}.sidebar{position:fixed;top:0;left:0;bottom:0;z-index:40;transform:translate(-100%);transition:transform .18s ease;box-shadow:none}.sidebar.open{transform:translate(0);box-shadow:0 0 24px #00000026}.scrim.open{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000040;z-index:30}.main{padding:16px 16px 80px}}.page-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:16px}.page-head h1{font-size:22px;margin:0;font-weight:500;letter-spacing:-.01em;line-height:1.25}.page-head .actions{margin-left:auto;display:flex;gap:8px}.icon-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:7px 12px;border-radius:var(--radius-pill);border:1px solid var(--line);font-size:14px;background:var(--bg)}.icon-btn:hover{background:var(--hover)}.icon-btn.primary{background:var(--fg);color:var(--bg);border-color:var(--fg)}.icon-btn.primary:hover{opacity:.85}.icon-btn.danger:hover{border-color:#c00;color:#c00}.icon-btn.small{width:32px;height:32px;padding:0;font-size:13px;border-radius:50%;flex-shrink:0}.actions-slot{display:contents}.icon-btn:disabled,.tool-btn:disabled{opacity:.35;cursor:default}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:20px;overflow-x:auto;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tab.right-tab{margin-left:auto}.tab{padding:8px 14px;border-radius:8px 8px 0 0;white-space:nowrap;display:inline-flex;align-items:center;gap:7px;text-decoration:none;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px}.tab:hover{background:var(--hover);color:var(--fg)}.tab.active{color:var(--fg);font-weight:500;border-bottom-color:var(--fg)}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:14px}.card{border:1px solid var(--line);border-radius:var(--radius-md);padding:16px;display:flex;flex-direction:column;gap:8px;text-decoration:none;min-height:110px}.card:hover{background:var(--hover)}.card .card-title{font-weight:500}.card .card-sub{color:var(--muted);font-size:12px;letter-spacing:.02em;display:flex;align-items:center;gap:6px;margin-top:auto}.card.new{align-items:center;justify-content:center;color:var(--muted);border-style:dashed}.empty{color:var(--muted);padding:40px 0;text-align:center}.modal-scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000004d;z-index:50;display:flex;align-items:center;justify-content:center;padding:16px}.modal{background:var(--bg);border-radius:20px;padding:22px;width:100%;max-width:440px;max-height:90vh;overflow-y:auto;display:flex;flex-direction:column;gap:14px}.modal.wide{max-width:580px}.field-row{display:grid;gap:12px;align-items:start}.field-row.two{grid-template-columns:1fr 1fr}.field-row.qty-status{grid-template-columns:110px 1fr}@media (max-width: 560px){.field-row.two,.field-row.qty-status{grid-template-columns:1fr}}.modal h2{margin:0;font-size:17px;font-weight:500}.modal .modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:4px}.field{display:flex;flex-direction:column;gap:4px}.field label{font-size:12px;font-weight:500;letter-spacing:.03em}.img-preview{width:132px;aspect-ratio:4/3;border:1px solid var(--line);border-radius:var(--radius-sm);overflow:hidden;margin-top:6px}.img-preview img{width:100%;height:100%;object-fit:cover;display:block}.img-grid{display:flex;flex-wrap:wrap;align-items:flex-start;gap:8px;margin-top:6px}.img-thumb{position:relative;flex:0 0 88px;min-width:0;width:88px;aspect-ratio:4/3;border:1px solid var(--line);border-radius:var(--radius-sm);overflow:hidden;cursor:pointer}.img-thumb.hovedbilde{border-color:var(--fg);cursor:default}.img-thumb img{width:100%;height:100%;object-fit:cover;display:block}.img-thumb .img-remove{position:absolute;top:3px;right:3px;width:20px;height:20px;border-radius:50%;background:var(--bg);border:1px solid var(--line);font-size:13px;line-height:1;display:flex;align-items:center;justify-content:center}.img-thumb .img-remove:hover{background:var(--hover)}.type-choice{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}@media (max-width: 500px){.type-choice{grid-template-columns:1fr}}.type-choice button{border:1px solid var(--line);border-radius:var(--radius-md);padding:16px 10px;display:flex;flex-direction:column;align-items:center;gap:8px;font-weight:600}.type-choice button:hover{background:var(--hover)}.editor-toolbar{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-bottom:12px}.editor-toolbar .sep{width:1px;height:24px;background:var(--line);margin:0 4px}.tool-btn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;border-radius:50%;border:1px solid var(--line);font-size:13px;flex-shrink:0}.tool-btn:hover{background:var(--hover)}.tool-btn.active{background:var(--fg);color:var(--bg);border-color:var(--fg)}.canvas-wrap{border:1px solid var(--line);border-radius:var(--radius-md);overflow:auto;max-height:72vh;background:var(--bg)}.draw-svg{display:block;width:100%;touch-action:none;-webkit-user-select:none;user-select:none}.canvas-wrap.fixed{overflow:hidden;position:relative}.float-edit{position:absolute;padding:2px 8px;border:1px solid var(--fg);border-radius:var(--radius-sm);background:var(--bg);font-size:14px;box-shadow:0 2px 10px #00000014}.wall-thickness{display:inline-flex;align-items:center;gap:5px;font-size:13px;color:var(--muted)}.wall-thickness input{width:58px;padding:6px 8px;border:1px solid var(--line);border-radius:var(--radius-pill);font-size:13px;text-align:center}.economy{display:flex;flex-direction:column;gap:30px;max-width:760px}.eco-section h2{font-size:16px;font-weight:500;margin:0 0 10px;letter-spacing:-.01em}.eco-head{display:flex;align-items:center;gap:10px;margin-bottom:10px}.eco-head h2{margin:0}.eco-table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}.eco-table.narrow{max-width:340px}.eco-table th{text-align:left;font-weight:400;color:var(--muted);font-size:12.5px}.eco-table th,.eco-table td{padding:7px 10px;border-bottom:1px solid var(--line)}.eco-table .num{text-align:right;white-space:nowrap}.eco-table td input{padding:6px 9px;border-radius:var(--radius-sm)}.eco-table td input.num{text-align:right;width:110px}.eco-table .row-action{width:44px;text-align:right}.eco-table tfoot td{font-weight:500;border-bottom:none}.eco-table tfoot tr.muted td{font-weight:400;color:var(--muted)}.eco-table .pct{color:var(--muted)}.eco-table .room-row{cursor:pointer}.eco-table .room-row:hover td{background:var(--hover)}.eco-table .room-caret{display:inline-flex;width:20px;color:var(--muted);vertical-align:-1px}.eco-table .product-row td{font-size:13px;color:var(--muted)}.eco-table .product-row td:first-child{padding-left:30px}.eco-table .product-row .missing{cursor:help}.eco-actions{display:flex;align-items:center;gap:18px;margin-top:12px}.eco-toggle{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--muted)}.eco-toggle input{width:auto;accent-color:var(--fg)}.amount-row{display:flex;align-items:center;gap:8px}.amount-row input{flex:1;min-width:0}.currency-pill{padding:3px 11px;border-radius:var(--radius-pill);background:#e2edf8;color:#38618b;font-size:11.5px;letter-spacing:.02em}.currency-edit{border-color:transparent;background:transparent}.currency-edit:hover{border-color:var(--line);background:var(--hover)}.currency-select{width:auto;padding:5px 30px 5px 12px;border-radius:var(--radius-pill);font-size:12.5px;background-position:right 9px center}.price-suggestion{margin-top:6px;align-self:flex-start;padding:4px 12px;border:1px dashed var(--line);border-radius:var(--radius-pill);color:var(--muted);font-size:12.5px}.price-suggestion:hover{border-color:var(--fg);color:var(--fg)}.editor-context{display:flex;align-items:center;flex-wrap:wrap;gap:10px 18px;min-height:40px;margin:-4px 0 12px}.editor-context .context-empty{color:var(--muted);font-size:12.5px}.draw-layout{display:flex;gap:12px;align-items:stretch}.draw-layout .canvas-wrap{flex:1;min-width:0}.furniture-sidebar{width:156px;flex-shrink:0;border:1px solid var(--line);border-radius:var(--radius-md);padding:12px 10px;display:flex;flex-direction:column;gap:12px;overflow-y:auto;max-height:72vh}.furniture-group{display:flex;flex-direction:column;gap:7px}.furniture-items{display:grid;grid-template-columns:repeat(3,36px);gap:6px}@media (max-width: 1100px){.draw-layout{flex-direction:column-reverse}.furniture-sidebar{width:auto;max-height:none;flex-direction:row;flex-wrap:wrap;gap:10px 26px;padding:12px 14px}.furniture-items{display:flex;flex-wrap:wrap}}.object-menu{position:absolute;transform:translate(-50%);display:flex;gap:2px;padding:4px;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius-pill);box-shadow:0 4px 16px #00000014;z-index:5}.object-menu .tool-btn{width:32px;height:32px;border-color:transparent}.object-menu .tool-btn:hover{border-color:var(--line)}.object-menu .tool-btn.danger:hover{border-color:#c00;color:#c00}.hint{color:var(--muted);font-size:13px;margin-top:8px}.editor-root.fullscreen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;background:var(--bg);padding:12px 16px 16px;display:flex;flex-direction:column;overflow:hidden}.editor-root.fullscreen .draw-layout,.editor-root.fullscreen>.canvas-wrap{flex:1;min-height:0}.editor-root.fullscreen .canvas-wrap{max-height:none;height:100%}.editor-root.fullscreen .canvas-wrap.fixed .draw-svg{width:100%;height:100%}.editor-root.fullscreen .furniture-sidebar{max-height:none}.editor-root.fullscreen>.canvas-wrap{overflow:hidden}.editor-root.fullscreen .mood-sizer{margin:0 auto}.editor-root.fullscreen .hint{display:none}.mood-canvas{position:relative;background:var(--bg);touch-action:none;-webkit-user-select:none;user-select:none}.mood-canvas.grid{background-image:linear-gradient(to right,var(--line) 1px,transparent 1px),linear-gradient(to bottom,var(--line) 1px,transparent 1px);background-size:50px 50px}.mood-img{position:absolute;border:2px solid transparent;border-radius:4px;transform-origin:center}.mood-img.selected{border-color:var(--fg)}.mood-img-inner{position:relative;width:100%;height:100%;overflow:hidden;border-radius:3px}.mood-img.framed .mood-img-inner{padding:10px;background:#fff;box-shadow:0 1px 3px #0000001f;border-radius:2px}.mood-img.framed .mood-img-inner img{border-radius:0}.mood-img img{width:100%;height:100%;object-fit:cover;border-radius:3px;display:block;pointer-events:none}.mood-img.cropping{border-color:var(--fg);border-style:dashed}.crop-rect{position:absolute;border:1.5px solid var(--fg);box-shadow:0 0 0 9999px #ffffff8c;pointer-events:none}.mood-marquee{position:absolute;border:1px dashed var(--fg);background:#1111110a;border-radius:4px;pointer-events:none;z-index:5}.snap-guide{position:absolute;background:var(--accent, #4a7fd6);pointer-events:none;opacity:.8}.snap-guide.v{top:0;bottom:0;width:1px}.snap-guide.h{left:0;right:0;height:1px}.tool-btn.pen-width span{display:block;border-radius:50%;background:currentColor}.mood-text{position:absolute;border:2px solid transparent;border-radius:4px;line-height:1.3;white-space:pre-wrap;overflow-wrap:break-word;color:var(--fg)}.mood-text:hover{border-color:var(--line)}.mood-text.selected{border-color:var(--fg)}.mood-text textarea{display:block;width:100%;padding:0;border:none;outline:none;background:transparent;resize:none;overflow:hidden;font:inherit;letter-spacing:inherit;line-height:inherit;color:inherit;text-align:inherit;-webkit-user-select:text;user-select:text}.mood-img .resize-handle,.mood-text .resize-handle{position:absolute;right:-8px;bottom:-8px;width:16px;height:16px;background:var(--fg);border-radius:50%;cursor:nwse-resize}.mood-text .resize-handle{cursor:ew-resize}.mood-img .rotate-handle,.mood-text .rotate-handle{position:absolute;right:-8px;top:-8px;width:16px;height:16px;background:var(--bg);border:2px solid var(--fg);border-radius:50%;cursor:grab}.color-dot{width:22px;height:22px;border-radius:50%;border:1px solid var(--line);padding:0}.color-dot.active{box-shadow:0 0 0 2px var(--bg),0 0 0 3.5px var(--fg)}.stroke-layer{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.product-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px}.product-card{border:1px solid var(--line);border-radius:var(--radius-md);overflow:hidden;display:flex;flex-direction:column}.product-card .thumb{aspect-ratio:4/3;min-height:0;overflow:hidden;background:var(--hover);display:flex;align-items:center;justify-content:center;color:var(--muted);position:relative}.carousel{position:relative;width:100%;height:100%;overflow:hidden;touch-action:pan-y;-webkit-user-select:none;user-select:none}.carousel-track{display:flex;height:100%;transition:transform .25s ease}.carousel-slide{flex:0 0 100%;height:100%}.carousel-slide img{width:100%;height:100%;object-fit:cover;display:block;pointer-events:none}.carousel-btn{position:absolute;top:50%;transform:translateY(-50%);width:28px;height:28px;border-radius:50%;background:#ffffffeb;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .15s ease}.carousel-btn.prev{left:8px}.carousel-btn.next{right:8px}.carousel:hover .carousel-btn:not(:disabled){opacity:1}.carousel-btn:hover{background:#fff}.carousel-dots{position:absolute;left:0;right:0;bottom:7px;display:flex;justify-content:center;gap:5px}.carousel-dots .dot{width:7px;height:7px;border-radius:50%;background:#ffffffd9;border:1px solid rgba(0,0,0,.25);padding:0}.carousel-dots .dot.active{background:var(--fg);border-color:var(--fg)}.product-card .thumb img{width:100%;height:100%;object-fit:cover;display:block}.dim-fields{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}@media (max-width: 560px){.dim-fields{grid-template-columns:1fr 1fr}}.product-card .dims{font-size:12.5px;color:var(--muted);font-variant-numeric:tabular-nums}.product-card .product-link{align-self:flex-start}.product-card .icon-btn{border-color:transparent;background:transparent}.product-card .icon-btn:hover,.product-card .icon-btn:active{border-color:var(--line);background:var(--hover)}.product-card .icon-btn.danger:hover{border-color:#c00}.product-card .body{padding:12px 14px 14px;display:flex;flex-direction:column;gap:6px;flex:1}.product-card .name{font-weight:500}.product-card .desc{color:var(--muted);font-size:13px;white-space:pre-wrap}.product-card .meta{display:flex;align-items:center;gap:8px;margin-top:auto;padding-top:6px;font-size:13px;font-variant-numeric:tabular-nums}.status-badge{border:none;border-radius:999px;padding:3px 11px;font-size:11.5px;letter-spacing:.02em;background:var(--hover);color:var(--fg)}.status-badge.forslag{background:#e2edf8;color:#38618b}.status-badge.godkjent{background:#e2efe4;color:#3d6e47}.status-badge.bestilt,.status-badge.levert{background:#ebe4f4;color:#664a90}button.status-badge{cursor:pointer}button.status-badge:hover{filter:brightness(.96)}.status-badge.on{box-shadow:inset 0 0 0 1.5px currentColor}.status-badge.alle{background:var(--hover);color:var(--muted)}.product-controls{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;margin-bottom:16px}.status-filter{display:flex;flex-wrap:wrap;gap:6px}.qty-badge{font-size:11.5px;color:var(--muted);white-space:nowrap}.sum-row{margin-top:18px;font-weight:500;font-variant-numeric:tabular-nums;display:flex;gap:8px;align-items:center}.eco-table.hours{max-width:100%}.eco-table.hours td.hour-date input{width:140px}.eco-table.hours td input.num{width:84px}.eco-table.hours .row-action,.eco-table.hours th.row-action{width:96px;white-space:nowrap;text-align:right}.eco-table.hours td.row-action{display:flex;align-items:center;gap:10px;justify-content:flex-end}.economy .eco-head .wall-thickness input{width:78px}.customer-form{max-width:480px;display:flex;flex-direction:column;gap:14px}.saved-note{color:var(--muted);font-size:13px}.type-label{color:var(--muted);font-size:12px;letter-spacing:.02em}
