@font-face{font-family:'Instrument Sans';font-style:normal;font-weight:400 700;font-display:swap;src:url('./fonts/instrument-latin.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:'Instrument Sans';font-style:normal;font-weight:400 700;font-display:swap;src:url('./fonts/instrument-ext.woff2') format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400 700;font-display:swap;src:url('./fonts/jetbrains-latin.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400 700;font-display:swap;src:url('./fonts/jetbrains-ext.woff2') format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}
:root{font-family:'Instrument Sans',Inter,system-ui,-apple-system,Segoe UI,sans-serif;color:#14262a;background:#f6f7f5;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}:focus-visible{outline:2px solid #1f7a6b;outline-offset:2px}a{color:#123c42}.shell,.admin-shell{min-height:100vh;display:flex}.sidebar{position:sticky;top:0;height:100vh;width:232px;flex:none;background:#123c42;color:#f5faf8;display:flex;flex-direction:column;padding:25px 13px}.brand{font-size:25px;letter-spacing:-.055em;font-weight:800;padding:0 13px}.brand span,.mobile-brand span{color:#c9ef8c}.brand small{display:block;letter-spacing:.16em;font-size:9px;color:#a8c3c0;margin-top:4px;font-weight:700}.navlabel{font-size:10px;color:#91b1ae;letter-spacing:.1em;margin:52px 14px 12px}.sidebar nav{display:grid;gap:5px}.navitem{border:0;background:transparent;color:#bed1cf;min-height:43px;text-align:left;border-radius:8px;padding:0 13px;font-weight:600;font-size:13px;display:flex;align-items:center;gap:13px;width:100%}.navitem span{font-size:20px;width:21px;text-align:center;font-weight:400}.navitem:hover,.navitem.active{color:#fff;background:#1f5158}.navitem.active{box-shadow:inset 3px 0 #c9ef8c}.sidefoot{margin-top:auto;border-top:1px solid #315a60;padding:17px 4px 0;display:flex;gap:10px;align-items:center;font-size:12px}.sidefoot div:nth-child(2){min-width:0;flex:1}.sidefoot strong,.sidefoot small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidefoot small{color:#acc6c2;margin-top:3px}.sidefoot button{border:0;color:#c1d4d1;background:none;font-size:21px}.initial{background:#c9ef8c;color:#123c42;font-size:12px;font-weight:700;width:35px;height:35px;flex:none;border-radius:50%;display:grid;place-items:center}.initial.small{width:34px;height:34px}.main{flex:1;min-width:0;padding:0 28px 48px;max-width:1600px}.top{min-height:102px;border-bottom:1px solid #e2e6e4;display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:26px}.top h1{margin:4px 0 0;font-size:22px;letter-spacing:-.03em}.top p{margin:4px 0 0;color:#5a6b6e;font-size:13px}.crumb{color:#688083;font-size:11px}.crumb span{margin:0 5px}.topright{display:flex;align-items:center;gap:18px}.live{color:#517063;font-size:11px;font-weight:600}.live b{color:#16835a}.hero{background:#123c42;color:#fff;border-radius:14px;padding:30px;display:flex;justify-content:space-between;gap:28px;margin-bottom:16px}.hero-label,.hero-right>span{letter-spacing:.12em;font-size:10px;font-weight:700;color:#a9c6c3}.hero h2{font-size:34px;letter-spacing:-.04em;margin:16px 0}.hero h2 span{font-size:16px;font-weight:400;color:#bbd0ce;letter-spacing:0}.hero p{font-size:12px;color:#bed0ce;margin:10px 0 0}.progress{height:8px;border-radius:10px;background:#3b6267;max-width:520px;overflow:hidden}.progress i{display:block;background:#c9ef8c;height:100%;border-radius:10px}.hero-right{border-left:1px solid #517277;padding-left:34px;min-width:170px;display:flex;flex-direction:column;justify-content:center}.hero-right strong{font-size:38px;line-height:1.2}.hero-right small{font-size:12px;color:#bdd2ce}.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:22px}.kpis.three{grid-template-columns:repeat(3,minmax(0,1fr))}.kpi{background:white;border:1px solid #e2e6e4;border-radius:12px;padding:18px;min-width:0}.eyebrow{color:#5a6b6e;font-size:11px;font-weight:600;display:block}.kpi strong{font-size:26px;letter-spacing:-.04em;display:block;margin:10px 0 3px;white-space:nowrap}.kpi small{font-size:11px;color:#697c7d}.danger,.urgent{color:#8c2a20!important}.purple{color:#4a2c8a}.green{color:#1d5a33}.two-col{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.8fr);gap:16px}.panel{background:#fff;border:1px solid #e2e6e4;border-radius:12px;overflow:hidden;min-width:0}.panel-head{display:flex;align-items:center;justify-content:space-between;padding:17px 20px;border-bottom:1px solid #eef1f0;gap:12px}.panel h2,.content-head h2{font-size:16px;letter-spacing:-.02em;margin:0}.panel-head p,.content-head p{color:#697b7d;font-size:12px;margin:4px 0 0}.textbtn{background:none;border:0;color:#1d6059;font-size:12px;font-weight:700;padding:9px}.textbtn:hover{text-decoration:underline}.mini{display:flex;align-items:center;gap:12px;padding:13px 18px;border-bottom:1px solid #f0f2f1;text-align:left;min-height:68px}.mini:last-child{border-bottom:0}.mini.interactive{border-left:0;border-right:0;border-top:0;background:none;width:100%;color:inherit}.mini.interactive:hover,tbody tr:hover{background:#f4f8f6}.mini>div:nth-child(2){min-width:0;flex:1}.mini strong,.mini small{display:block}.mini strong{font-size:13px;line-height:1.35}.mini small{color:#6a7c7e;font-size:11px;margin-top:3px}.mini b{font-size:13px;white-space:nowrap}.dot{background:#eaf3f1;color:#123c42;width:32px;height:32px;flex:none;border-radius:9px;display:grid;place-items:center;font-size:17px}.dot.warn{background:#fff1d6;color:#8a4b00}.dot.success{background:#dff3e6;color:#1d5a33}.arrow{color:#678}.content-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:26px 0 14px}.primary,.secondary{border-radius:8px;min-height:38px;padding:8px 15px;font-size:13px;font-weight:700}.primary{background:#123c42;color:#fff;border:1px solid #123c42}.primary:hover{background:#1f5158}.secondary{background:#fff;color:#123c42;border:1px solid #b7c8c5}.secondary:hover{background:#eff5f3}.tabs{display:flex;overflow:auto;gap:4px;border-bottom:1px solid #dfe6e2;margin-bottom:14px}.tabs button{background:none;border:0;border-bottom:2px solid transparent;white-space:nowrap;padding:13px 16px;color:#5a6b6e;font-size:13px;font-weight:600}.tabs button.on{color:#123c42;border-bottom-color:#123c42}.filters{display:flex;gap:10px;margin-bottom:14px}.filters input,.filters select,.drawer select,.drawer input,.drawer textarea,.modal input,.modal select,.modal textarea,.login-form input{border:1px solid #d5dbd9;border-radius:8px;background:#fff;color:#14262a;min-height:39px;padding:8px 11px;max-width:100%}.filters select{min-width:165px}.search{flex:1;display:flex;align-items:center;background:#fff;border:1px solid #d5dbd9;border-radius:8px;padding-left:12px}.search span{font-size:21px;color:#728082}.search input{border:0;width:100%;min-width:0;outline:0}.desktop-table{overflow:auto}.list-panel table{min-width:850px}table{width:100%;border-collapse:collapse;text-align:left;font-size:12px}th{font-size:10px;letter-spacing:.07em;color:#728184;font-weight:700;background:#fbfcfb;padding:12px 17px;border-bottom:1px solid #e8edeb;white-space:nowrap}td{padding:14px 17px;border-bottom:1px solid #eef1f0;vertical-align:middle}tbody tr{cursor:pointer}tbody tr:last-child td{border-bottom:0}td strong,td small{display:block}td strong{font-size:12px;line-height:1.35}td small{font-size:11px;color:#6c7e80;margin-top:4px}.status{display:inline-flex;align-items:center;gap:4px;border-radius:20px;padding:5px 9px;font-size:11px;font-weight:700;white-space:nowrap;background:#eef1f1;color:#2f4a4e}.status.kontakt{background:#fff1d6;color:#7a4b00}.status.dialog{background:#e3eef9;color:#18456e}.status.tilbud{background:#ede7fa;color:#4a2c8a}.status.solgt{background:#dff3e6;color:#1d5a33}.status.tapt{background:#f6e4e2;color:#7d2a22}.muted{color:#6f7f80}.iconbtn{background:none;border:0;font-size:21px;color:#56716d;padding:4px 8px}.empty{text-align:center;padding:46px 25px;color:#677a7c;font-size:13px}.cards{display:none}.municipal-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.municipality{padding:18px}.municipality h2{margin:16px 0 4px}.municipality p{font-size:12px;color:#667a7b;margin:0}.mun-head{display:flex;justify-content:space-between;align-items:start}.mun-icon{height:39px;width:39px;background:#e9f2ef;border-radius:10px;color:#123c42;font-weight:800;display:grid;place-items:center}.mun-stats{display:flex;justify-content:space-between;padding:18px 0;margin-top:17px;border-top:1px solid #edf0ee}.mun-stats span{font-weight:700;font-size:17px}.mun-stats small{display:block;color:#728184;font-weight:400;font-size:11px;margin-top:3px}.coverage{border-radius:20px;padding:5px 9px;font-size:11px;font-weight:700;background:#eef1f1;color:#66797a}.coverage.checked{background:#dff3e6;color:#1d5a33}.coverage.partial{background:#fff1d6;color:#8a4b00}.note{background:#fff8e8;border:1px solid #f2dfb9;border-radius:9px;color:#79561d;padding:13px 15px;font-size:12px;margin:16px 0}.backdrop,.modal-bg{position:fixed;inset:0;background:#122c30aa;z-index:10}.drawer{position:fixed;right:0;top:0;bottom:0;background:#fff;width:520px;max-width:100vw;z-index:11;box-shadow:-12px 0 50px #0002;display:flex;flex-direction:column}.drawer-header{display:flex;justify-content:space-between;align-items:center;padding:13px 24px;border-bottom:1px solid #e2e6e4}.drawer-body{overflow:auto;padding:26px 28px 50px}.drawer-body h2{font-size:24px;line-height:1.2;letter-spacing:-.03em;margin:7px 0 14px}.detail-meta{font-size:12px;color:#597476}.detail-tags{display:flex;gap:6px}.chip{font-size:11px;background:#f0f3f2;border-radius:20px;padding:5px 9px;font-weight:700}.facts{display:grid;grid-template-columns:1fr 1fr;gap:18px;padding:20px 0;margin-top:18px;border-top:1px solid #edf0ee;border-bottom:1px solid #edf0ee}.facts span{display:block;color:#7a8988;letter-spacing:.07em;font-size:10px;font-weight:700}.facts strong{display:block;font-size:13px;margin-top:5px}.source-link{font-size:12px;display:inline-block;margin:15px 0}.detail-section{padding:20px 0;border-top:1px solid #edf0ee}.detail-section h3{font-size:14px;margin:0 0 13px}.detail-section p{font-size:13px;color:#53696b}.detail-section select,.detail-section textarea{width:100%;margin-bottom:10px}.detail-section .fields{display:flex;gap:8px}.detail-section .fields input{width:45%;margin-bottom:10px}.status-actions{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:12px}.status-actions button{background:#fff;border:1px solid #dbe2e0;border-radius:8px;padding:4px}.status-actions button.chosen{border-color:#123c42;background:#f3f8f6}.action-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.activity{display:flex;gap:9px;border-left:1px solid #dae4e0;margin-left:13px;padding:2px 0 15px 14px}.activity .dot{width:15px;height:15px;border-radius:50%;margin-left:-22px}.activity strong,.activity small{display:block;font-size:12px}.activity small{color:#728184;margin-top:4px}.modal-bg{z-index:12}.modal{position:fixed;z-index:13;top:50%;left:50%;transform:translate(-50%,-50%);background:#fff;width:430px;max-width:calc(100vw - 24px);border-radius:14px;box-shadow:0 20px 80px #102c3040;max-height:90vh;overflow:auto}.modal-head{display:flex;justify-content:space-between;align-items:center;padding:18px 22px;border-bottom:1px solid #e8edeb}.modal-head h2{margin:0;font-size:18px}.modal form{display:grid;gap:14px;padding:20px 22px}.modal label,.login-form label{font-size:12px;font-weight:700;display:grid;gap:6px}.modal input,.modal select,.modal textarea{width:100%}.modal-buttons{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}.toast{position:fixed;z-index:30;bottom:22px;left:50%;transform:translateX(-50%);background:#123c42;color:#fff;border-radius:9px;padding:13px 18px;box-shadow:0 5px 24px #0003;font-size:13px}.toast.bad{background:#8c2a20}.login-page{display:flex;min-height:100vh}.login-panel{width:50%;background:#123c42;color:#fff;padding:37px 6%;display:flex;flex-direction:column;justify-content:space-between}.login-panel>.brand{padding:0}.login-content{max-width:460px}.pill{border:1px solid #63908b;color:#c9ef8c;padding:7px 11px;border-radius:25px;display:inline-block;font-size:10px;font-weight:700;letter-spacing:.1em}.login-content h1{font-size:clamp(45px,5vw,76px);line-height:1.02;letter-spacing:-.06em;margin:27px 0}.login-content em{font-style:normal;color:#c9ef8c}.login-content p{font-size:16px;line-height:1.6;color:#bdd1ce;margin-bottom:40px}.login-feature{padding:16px 0;border-top:1px solid #386367;font-size:13px}.login-panel>small{color:#92b3af}.login-form-wrap{flex:1;display:grid;place-items:center;padding:35px}.login-form{width:380px;max-width:100%;display:grid;gap:17px}.login-form h2{font-size:27px;letter-spacing:-.04em;margin:0}.login-form p{font-size:13px;color:#667a7b;margin:0 0 8px}.login-form input{min-height:47px}.login-form .primary{min-height:48px;margin-top:7px}.login-form .help{font-size:11px;line-height:1.5;margin-top:9px}.mobile-brand,.mobile-nav{display:none}
@media(max-width:1050px){.sidebar{width:82px;padding:24px 9px}.brand{font-size:20px;padding:0 8px}.brand small{font-size:7px}.navlabel,.sidebar .navitem{font-size:0}.navitem{justify-content:center;padding:0}.navitem span{font-size:23px}.sidefoot div:nth-child(2),.sidefoot button{display:none}.sidefoot{justify-content:center}.two-col{grid-template-columns:1fr}.municipal-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:750px){.sidebar{display:none}.main{padding:0 16px 95px}.top{min-height:78px;margin-bottom:16px}.topright .live{display:none}.top h1{font-size:19px}.top p{font-size:12px}.hero{padding:22px;display:block}.hero h2{font-size:29px}.hero h2 span{display:block;margin-top:4px;font-size:13px}.hero-right{display:none}.kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.kpi{padding:13px}.kpi strong{font-size:21px}.kpis.three{grid-template-columns:repeat(2,1fr)}.desktop-table{display:none}.cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:10px}.opp-card{background:#fff;border:1px solid #e2e6e4;border-radius:10px;padding:14px;display:flex;flex-direction:column;gap:12px;text-align:left;color:#14262a;min-width:0}.opp-card>strong{font-size:14px;line-height:1.35}.opp-top,.card-bottom{display:flex;justify-content:space-between;align-items:center;gap:8px}.opp-top small,.card-bottom{font-size:11px;color:#6b7e80}.opp-top .status{font-size:10px;padding:4px 6px}.filters{flex-wrap:wrap}.filters .search{flex-basis:100%}.filters select{min-width:0;flex:1}.mobile-nav{position:fixed;z-index:8;bottom:0;left:0;right:0;height:70px;background:#fff;border-top:1px solid #dce5e1;display:flex;justify-content:space-around}.mobile-nav button{border:0;background:none;color:#637779;font-size:10px;font-weight:600;flex:1;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:2px}.mobile-nav button span{font-size:20px}.mobile-nav button.active{color:#123c42;border-top:3px solid #123c42}.drawer{width:100vw}.municipal-grid{grid-template-columns:repeat(2,1fr)}.login-panel{display:none}.login-form-wrap{padding:25px}.mobile-brand{display:block;color:#123c42;font-weight:800;font-size:25px;letter-spacing:-.05em;margin-bottom:55px}.mobile-brand span{color:#1f7a6b}}
@media(max-width:510px){.main{padding-left:13px;padding-right:13px}.top p{display:none}.cards,.municipal-grid{grid-template-columns:1fr}.content-head{margin-top:22px}.content-head h2{font-size:15px}.primary,.secondary{min-height:44px}.tabs button{padding:12px 10px;font-size:12px}.drawer-body{padding:20px 18px 75px}.kpi strong{font-size:20px}.mun-stats{margin-top:8px}.toast{width:calc(100% - 24px);bottom:78px;text-align:center}}
/* v0.4: font fidelity and functional admin surfaces */
.eyebrow,.hero-label,.hero-right>span,.navlabel,.brand small,.crumb,.coverage,.detail-meta,.facts span,.mono,.mun-head .muted,.pill{font-family:'JetBrains Mono',monospace;font-variant-numeric:tabular-nums}
.kpi strong,.hero h2,.mun-stats>span,.sales-total{font-variant-numeric:tabular-nums}
.admin-row{display:flex;align-items:center;gap:14px;min-height:69px;padding:12px 17px;border-bottom:1px solid #e8edeb}
.admin-row:last-child{border-bottom:0}.admin-row>div:nth-child(2){min-width:0;flex:1}.admin-row strong,.admin-row small{display:block}.admin-row strong{font-size:13px}.admin-row small{font-size:11px;color:#738486;margin-top:5px;overflow-wrap:anywhere}.admin-row .status,.admin-row .coverage{white-space:nowrap}
.small-btn{min-height:32px;padding:5px 10px;font-size:11px;white-space:nowrap}.admin-quick{display:flex;flex-wrap:wrap;gap:9px;margin:16px 0}.municipality-action{margin-top:16px;width:100%;justify-content:center}.checkrow{display:flex;align-items:center;gap:9px}.checkrow input{width:auto;min-height:0}.checkrow:has(input:disabled){color:#708182;font-size:12px}
@media(max-width:750px){.admin-row{flex-wrap:wrap;padding:13px;gap:9px}.admin-row>div:nth-child(2){flex-basis:55%}.admin-row .status,.admin-row .coverage{margin-left:43px}.admin-row .small-btn{margin-left:auto}.admin-mobile{height:72px}.integration-list .admin-row .status{margin-left:auto}}
.integration-detail{padding:16px 20px;border-bottom:1px solid #e8edeb;background:#fafbf9;font-size:12px;line-height:1.55}.integration-detail p{margin:0}.integration-detail .note{margin:10px 0 0}.error-note{color:#983b2e;background:#fff3f1}.import-panel{padding:20px;display:grid;justify-items:start;gap:12px}.import-panel p{max-width:760px;margin:0;color:#5a6b6e;font-size:13px}.import-panel label{display:grid;gap:8px;font-size:12px;font-weight:600;max-width:100%}.import-panel input[type=file]{max-width:100%;font-size:12px}.import-panel .note{margin:4px 0 0;max-width:100%;overflow-wrap:anywhere}
