:root{--bg: #0f0f0f;--surface: #1a1a1a;--surface2: #232323;--surface3: #2c2c2c;--border: rgba(255,255,255,.08);--border2: rgba(255,255,255,.14);--text: #e8e8e8;--text2: #888;--text3: #555;--accent: #00d4aa;--accent2: #00a882;--warn: #f59e0b;--danger: #ef4444;--mono: "Google Sans", sans-serif;--sans: "Google Sans", sans-serif;--sidebar-w: 220px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--sans);background:var(--bg);color:var(--text);min-height:100vh;font-size:14px;line-height:1.5}.app{min-height:100vh}.sidebar{background:var(--surface);border-right:1px solid var(--border);position:fixed;top:0;left:0;height:100vh;width:var(--sidebar-w);display:flex;flex-direction:column;z-index:50;transition:transform .25s ease}.main{margin-left:var(--sidebar-w);padding:36px 44px;max-width:calc(var(--sidebar-w) + 1060px)}.logo{padding:22px 20px 18px;border-bottom:1px solid var(--border)}.logo-mark{font-family:var(--mono);font-size:10px;color:var(--accent);letter-spacing:.15em;text-transform:uppercase;margin-bottom:5px}.logo-name{font-size:17px;font-weight:600;letter-spacing:-.02em}.logo-sub{font-size:11px;color:var(--text3);margin-top:2px;font-family:var(--mono)}.nav{padding:10px 8px;flex:1;overflow-y:auto}.nav-item{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:6px;cursor:pointer;font-size:13px;color:var(--text2);transition:background .12s,color .12s,border-color .12s;margin-bottom:1px;border:1px solid transparent;-webkit-user-select:none;user-select:none}.nav-item:hover{background:var(--surface2);color:var(--text)}.nav-item.active{background:#00d4aa14;color:var(--accent);border-color:#00d4aa2e}.nav-icon{width:16px;text-align:center;font-size:13px;flex-shrink:0}.nav-sep{font-family:var(--mono);font-size:10px;color:var(--text3);letter-spacing:.1em;padding:14px 12px 5px;text-transform:uppercase}.sidebar-footer{padding:14px 20px;border-top:1px solid var(--border)}.version{font-family:var(--mono);font-size:10px;color:var(--text3)}.page-header{margin-bottom:24px}.page-title{font-size:22px;font-weight:600;letter-spacing:-.025em}.page-sub{font-size:12px;color:var(--text3);margin-top:4px;font-family:var(--mono)}.panel{display:none}.panel.active{display:block}.card{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:20px 22px;margin-bottom:14px}.card:last-child{margin-bottom:0}.card-title{font-size:10px;font-weight:500;color:var(--text3);letter-spacing:.14em;text-transform:uppercase;font-family:var(--mono);margin-bottom:16px}.g2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.g3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}.g4{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.field{display:flex;flex-direction:column;gap:5px}.field label{font-size:11px;color:var(--text2);letter-spacing:.04em;font-family:var(--mono)}input[type=number],input[type=text],input[type=email],input[type=password],select{width:100%;padding:8px 10px;background:var(--surface2);border:1px solid var(--border2);border-radius:5px;color:var(--text);font-family:var(--mono);font-size:13px;outline:none;transition:border-color .15s;-moz-appearance:textfield}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none}input:focus,select:focus{border-color:var(--accent)}select option{background:var(--surface2)}hr{border:none;border-top:1px solid var(--border);margin:20px 0}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.metric{background:var(--surface2);border:1px solid var(--border);border-radius:6px;padding:12px 14px}.metric-label{font-size:10px;color:var(--text3);font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;margin-bottom:6px}.metric-value{font-size:22px;font-weight:500;font-family:var(--mono);letter-spacing:-.02em}.metric-value.green{color:var(--accent)}.metric-value.amber{color:var(--warn)}.breakdown{font-family:var(--mono);font-size:12px}.br-row{display:flex;justify-content:space-between;padding:5px 0;border-bottom:1px solid var(--border);color:var(--text2)}.br-row:last-child{border-bottom:none;color:var(--text);font-weight:500}.br-row span:last-child{color:var(--text)}.btn{padding:7px 14px;border-radius:5px;font-size:12px;font-family:var(--mono);cursor:pointer;border:1px solid var(--border2);background:var(--surface2);color:var(--text2);transition:background .12s,color .12s;letter-spacing:.04em}.btn:hover{background:var(--surface3);color:var(--text)}.btn-accent{background:var(--accent);color:#000;border-color:var(--accent);font-weight:500}.btn-accent:hover{background:var(--accent2);border-color:var(--accent2);color:#000}.btn-danger{color:var(--danger);border-color:#ef44444d}.btn-sm{padding:4px 8px;font-size:10px}.btn-xs{padding:3px 8px;font-size:10px}.btn-row{display:flex;gap:8px;margin-top:16px;flex-wrap:wrap}.badge{display:inline-block;padding:2px 8px;border-radius:4px;font-family:var(--mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;font-weight:500}.badge-green{background:#00d4aa1a;color:var(--accent);border:1px solid rgba(0,212,170,.22)}.badge-amber{background:#f59e0b1a;color:var(--warn);border:1px solid rgba(245,158,11,.22)}.badge-red{background:#ef44441a;color:var(--danger);border:1px solid rgba(239,68,68,.22)}.kalkyl-layout{display:grid;grid-template-columns:1fr 340px;gap:20px;align-items:start}.kalkyl-inputs{min-width:0}.kalkyl-results{position:sticky;top:36px}.kalkyl-results .metrics{grid-template-columns:1fr 1fr}.spool-card{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:14px 16px}.spool-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.spool-name{font-weight:500;font-size:14px}.spool-mat{font-family:var(--mono);font-size:11px;color:var(--text3);margin-top:2px}.spool-actions{display:flex;gap:6px;align-items:center}.progress{height:3px;background:var(--surface3);border-radius:2px;overflow:hidden;margin:8px 0 6px}.progress-fill{height:100%;border-radius:2px;transition:width .4s ease}.spool-footer{display:flex;justify-content:space-between;font-family:var(--mono);font-size:11px;color:var(--text3)}.spool-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px;margin-bottom:4px}.log-item{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:14px 18px;margin-bottom:8px;display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.log-name{font-weight:500;margin-bottom:4px}.log-meta{font-family:var(--mono);font-size:11px;color:var(--text3);display:flex;gap:14px;flex-wrap:wrap;margin-top:4px}.log-price{font-family:var(--mono);font-size:18px;color:var(--accent);font-weight:500;text-align:right;white-space:nowrap}.log-price-sub{font-family:var(--mono);font-size:10px;color:var(--text3);text-align:right;margin-top:2px}.log-item-actions{margin-top:6px;display:flex;gap:6px;justify-content:flex-end}.toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.toolbar-title{font-size:13px;font-weight:500}.toolbar-actions{display:flex;gap:8px}#logSummary{font-family:var(--mono);font-size:12px;color:var(--text3)}.empty{text-align:center;padding:60px 20px;color:var(--text3);font-family:var(--mono);font-size:13px}.empty-icon{font-size:28px;margin-bottom:12px;opacity:.35}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000a6;z-index:100;display:none;align-items:center;justify-content:center}.overlay.open{display:flex}.modal{background:var(--surface);border:1px solid var(--border2);border-radius:10px;padding:28px;width:420px;max-width:90vw}.modal-title{font-size:16px;font-weight:600;margin-bottom:20px;letter-spacing:-.01em}.modal-field{margin-bottom:14px}.modal-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:20px}.toast{position:fixed;bottom:24px;right:24px;background:var(--surface3);border:1px solid var(--border2);border-left:3px solid var(--accent);border-radius:6px;padding:10px 16px;font-family:var(--mono);font-size:12px;color:var(--text);z-index:999;transform:translateY(60px);opacity:0;transition:transform .22s ease,opacity .22s ease;pointer-events:none}.toast.show{transform:translateY(0);opacity:1}.setting-row{display:flex;justify-content:space-between;align-items:center;padding:14px 0;border-bottom:1px solid var(--border);gap:16px}.setting-row:last-child{border-bottom:none}.setting-label{font-size:13px}.setting-desc{font-size:11px;color:var(--text3);font-family:var(--mono);margin-top:2px}.setting-row .field{width:160px;flex-shrink:0}.stats-bar{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:24px}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:14px 16px}.stat-label{font-family:var(--mono);font-size:10px;color:var(--text3);text-transform:uppercase;letter-spacing:.1em;margin-bottom:8px}.stat-value{font-family:var(--mono);font-size:20px;font-weight:500}.stat-sub{font-family:var(--mono);font-size:10px;color:var(--text3);margin-top:4px}.mobile-topbar{display:none;align-items:center;gap:14px;padding:13px 16px;background:var(--surface);border-bottom:1px solid var(--border);margin:-16px -16px 20px;position:sticky;top:0;z-index:30}.hamburger{background:none;border:none;color:var(--text2);font-size:20px;cursor:pointer;padding:2px 4px;line-height:1}.hamburger:hover{color:var(--text)}.mobile-logo{font-size:16px;font-weight:600;letter-spacing:-.02em}.sidebar-backdrop{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;z-index:40}.sidebar-backdrop.visible{display:block}@media (max-width: 899px){.sidebar{transform:translate(-100%)}.sidebar.open{transform:translate(0)}.main{margin-left:0;padding:16px}.mobile-topbar{display:flex}.kalkyl-layout{grid-template-columns:1fr}.kalkyl-results{position:static}.kalkyl-results .metrics{grid-template-columns:1fr 1fr}.g2,.g3{grid-template-columns:1fr}.g4,.metrics,.stats-bar{grid-template-columns:1fr 1fr}.spool-grid{grid-template-columns:1fr}.card{padding:16px}.setting-row{flex-direction:column;align-items:flex-start;gap:8px}.setting-row .field{width:100%}.log-item{flex-direction:column;gap:8px}.log-price,.log-price-sub{text-align:left}.log-item-actions{justify-content:flex-start}.toolbar{flex-wrap:wrap;gap:8px}.toolbar-actions{flex-wrap:wrap}}.address-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:0}.address-fields .addr-field{margin-top:0!important}@media (max-width: 899px){.address-fields{grid-template-columns:1fr}}.settings-details summary::-webkit-details-marker{display:none}.settings-details summary{list-style:none}.settings-details summary:focus{outline:none}.log-item:hover{border-color:var(--accent);background:var(--surface2)}.login-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--bg);display:flex;align-items:center;justify-content:center;z-index:2000}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:40px;width:320px;box-shadow:0 20px 40px #0006}.login-spinner{display:inline-block;width:20px;height:20px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.mono{font-family:var(--mono)}.text-dim{color:var(--text3)}.text-danger{color:var(--danger)}.text-green{color:var(--accent)}.crm-table{width:100%;border-collapse:collapse;font-size:13px}.crm-table th{text-align:left;font-size:10px;font-weight:500;color:var(--text3);letter-spacing:.1em;text-transform:uppercase;font-family:var(--mono);padding:6px 12px 8px;border-bottom:1px solid var(--border)}.crm-table td{padding:10px 12px;border-bottom:1px solid var(--border);vertical-align:middle}.crm-row{cursor:pointer;transition:background .1s}.crm-row:hover{background:var(--surface2)}.crm-actions{display:flex;gap:6px;justify-content:flex-end;white-space:nowrap}.crm-status{display:inline-block;padding:2px 8px;border-radius:10px;font-size:11px;font-family:var(--mono);font-weight:500}.crm-status-prospekt{background:#ffffff0f;color:var(--text2)}.crm-status-aktiv{background:#00d4aa1f;color:var(--accent)}.crm-status-inaktiv{background:#ffffff0a;color:var(--text3)}.crm-status-forlorad{background:#ef44441f;color:var(--danger)}.crm-status-offert{background:#f59e0b1f;color:var(--warn)}.crm-status-order{background:#00d4aa1f;color:var(--accent)}.crm-status-efterkalkyl{background:#6366f126;color:#a5b4fc}.crm-status-avslutad{background:#ffffff0a;color:var(--text3)}.crm-tag{display:inline-block;padding:3px 10px;border-radius:10px;font-size:11px;font-family:var(--mono);background:#00d4aa1a;color:var(--accent);border:1px solid rgba(0,212,170,.2)}.crm-empty{color:var(--text3);padding:32px 20px;text-align:center;font-size:13px}.crm-loading{color:var(--text3);padding:20px;font-family:var(--mono);font-size:13px}.cust-summary{font-size:10px;color:var(--text3);font-family:var(--mono);margin-top:3px}.detail-grid{display:flex;flex-direction:column;gap:8px}.detail-row{display:flex;gap:12px;font-size:13px}.detail-label{flex:0 0 160px;color:var(--text3);font-family:var(--mono);font-size:11px;padding-top:2px}.detail-value{flex:1;color:var(--text);word-break:break-word}.contact-card{background:var(--surface2);border:1px solid var(--border);border-radius:6px;padding:10px 14px;margin-bottom:8px;font-size:13px}.contact-card:last-child{margin-bottom:0}.pipeline-step{text-align:center;min-width:80px}.pipeline-count{font-size:22px;font-weight:600;color:var(--accent);font-family:var(--mono)}.pipeline-label{font-size:10px;color:var(--text3);text-transform:uppercase;letter-spacing:.08em;font-family:var(--mono);margin-top:2px}.crm-activity-row{display:flex;align-items:center;gap:14px;padding:10px 14px;border-bottom:1px solid var(--border);font-size:13px}.crm-activity-row:hover{background:var(--surface2)}.activity-step-badge{background:#00d4aa1a;color:var(--accent);border-radius:5px;padding:3px 10px;font-size:11px;font-family:var(--mono);white-space:nowrap;flex-shrink:0}.activity-customer{font-weight:500;min-width:140px;flex-shrink:0}.activity-notes{flex:1;color:var(--text2);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.activity-date{flex-shrink:0}.reminder-row{display:flex;align-items:flex-start;gap:14px;padding:12px 14px;border-bottom:1px solid var(--border);font-size:13px}.reminder-row:hover{background:var(--surface2)}.reminder-overdue{border-left:3px solid var(--danger)}.reminder-today{border-left:3px solid var(--warn)}.reminder-done{opacity:.45}.reminder-check{flex-shrink:0;padding-top:2px}.reminder-body{flex:1}.reminder-title{font-weight:500}.reminder-strikethrough{text-decoration:line-through;color:var(--text3)}.reminder-customer{font-size:11px;color:var(--text3);font-family:var(--mono);margin-top:2px}.reminder-notes{font-size:12px;color:var(--text2);margin-top:2px}.reminder-date{flex-shrink:0;white-space:nowrap}.survey-row{display:flex;align-items:flex-start;gap:14px;padding:12px 14px;border-bottom:1px solid var(--border);font-size:13px}.survey-row:hover{background:var(--surface2)}.survey-rating{font-size:18px;color:var(--warn);flex-shrink:0;letter-spacing:1px}.survey-body{flex:1}.survey-customer{font-weight:500}.survey-project{font-size:11px;font-family:var(--mono);margin-top:2px}.survey-feedback{font-size:12px;color:var(--text2);margin-top:4px;font-style:italic}.survey-date{flex-shrink:0;white-space:nowrap}.crm-modal-wide{width:860px!important;max-width:96vw!important}.crm-modal-scroll{max-height:68vh;overflow-y:auto;padding-right:4px}.crm-section-title{font-size:10px;font-weight:500;color:var(--text3);letter-spacing:.14em;text-transform:uppercase;font-family:var(--mono);margin-bottom:10px;margin-top:4px;padding-bottom:6px;border-bottom:1px solid var(--border)}.crm-contact-row{padding:8px 0;border-bottom:1px solid var(--border)}.crm-contact-row:last-child{border-bottom:none}.crm-checkbox{display:flex;align-items:center;gap:6px;font-size:13px;cursor:pointer;color:var(--text2)}.crm-checkbox input{accent-color:var(--accent);width:auto}.overlay.active{display:flex}.flow-card{position:fixed;bottom:28px;right:28px;background:var(--surface);border:1px solid var(--accent);border-radius:12px;padding:18px 20px 16px;max-width:340px;width:calc(100vw - 56px);z-index:600;transform:translateY(130%);opacity:0;transition:transform .3s cubic-bezier(.34,1.56,.64,1),opacity .2s ease;box-shadow:0 8px 32px #00000073,0 0 0 1px #00d4aa26}.flow-card.show{transform:translateY(0);opacity:1}.flow-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-bottom:6px}.flow-card-title{font-weight:600;font-size:14px;color:var(--text);flex:1}.flow-card-close{background:none;border:none;color:var(--text3);cursor:pointer;font-size:13px;padding:0;flex-shrink:0;line-height:1}.flow-card-close:hover{color:var(--text)}.flow-card-desc{font-size:12px;color:var(--text2);margin-bottom:14px;line-height:1.5}.flow-card-actions{display:flex;gap:8px;flex-wrap:wrap}.invoice-status-select{font-size:11px;padding:4px 8px;border-radius:5px;background:var(--surface2);border:1px solid var(--border2);color:var(--text2);font-family:var(--mono);cursor:pointer;width:auto}.badge-accent{background:#00d4aa26;color:var(--accent)}.dash-two-col{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}@media (max-width: 899px){.dash-two-col{grid-template-columns:1fr}}.dash-section-header{display:flex;justify-content:space-between;align-items:center}.dash-rem-row{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--border);font-size:13px}.dash-rem-row:last-child{border-bottom:none}.dash-rem-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.dot-red{background:var(--danger)}.dot-amber{background:var(--warn)}.dash-rem-body{flex:1;min-width:0}.dash-rem-title{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dash-rem-customer{font-size:11px;color:var(--text3);font-family:var(--mono)}.dash-rem-date{font-size:11px;white-space:nowrap;flex-shrink:0}.dash-act-row{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--border);font-size:13px}.dash-act-row:last-child{border-bottom:none}.dash-act-customer{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:500}.dash-act-date{font-size:11px;white-space:nowrap;flex-shrink:0}.crm-tab-bar{display:flex;gap:4px}.crm-tab{padding:6px 16px;border:1px solid var(--border);border-radius:6px;background:transparent;color:var(--text2);font-size:12px;font-family:var(--mono);cursor:pointer;transition:all .15s}.crm-tab:hover{background:var(--card);color:var(--text1)}.crm-tab.active{background:var(--accent);color:#fff;border-color:var(--accent)}
