.page,.page *{box-sizing:border-box;margin:0;padding:0}.page{width:var(--page-w);height:var(--page-h);background:var(--c-milk);color:var(--c-ristretto);font-family:var(--font);line-height:1.5;position:relative;overflow:hidden;box-shadow:0 8px 30px #00000047}.page .top{grid-template-columns:1fr var(--image-col);height:var(--top-h);display:grid}.page .left{padding:var(--top-pad);min-width:0}.page .left .logo{height:12mm;color:var(--c-ristretto)}.page .left .logo svg{width:auto;height:100%;display:block}.page .eyebrow{font-size:var(--pt-eyebrow);letter-spacing:.18em;color:var(--c-coffee-milk);margin-top:6mm;font-weight:700}.page h1{font-size:var(--pt-heading);margin-top:2mm;font-weight:700;line-height:1}.page .sub{font-size:var(--pt-variant);margin-top:1mm;font-weight:500}.page .sub span{color:var(--c-secondary);font-weight:400;font-size:var(--pt-variant-extra);margin-left:6px}.page .lede{font-size:var(--pt-lede);max-width:var(--lede-max);margin-top:2.5mm;line-height:1.42}.page .stats{gap:var(--stat-gap);flex-wrap:nowrap;align-items:flex-start;margin-top:5mm;display:flex}.page .stat{flex:0 auto;align-items:flex-start;gap:2mm;min-width:0;display:flex}.page .stat svg{width:var(--stat-icon);height:var(--stat-icon);flex:none;margin-top:.3mm}.page .stat>div{min-width:0}.page .stat b{font-size:var(--pt-stat);letter-spacing:.04em;white-space:nowrap;font-weight:700;line-height:1.25;display:block}.page .stat small{font-size:var(--pt-stat-sub);color:var(--c-secondary);letter-spacing:.04em;overflow-wrap:break-word;line-height:1.25;display:block}.page .right{position:relative}.page .right img{top:var(--image-top);height:var(--image-h);right:var(--image-center);position:absolute;transform:translate(50%)}.page .right .ph{top:50%;right:var(--image-center);color:#cfc8b8;width:26mm;position:absolute;transform:translate(50%,-50%)}.page .flik{z-index:3;background:var(--c-attention);border-radius:0 0 var(--tab-r) var(--tab-r);width:var(--tab-w);height:var(--tab-h);top:0;right:var(--tab-right);position:absolute}.page .flik svg{left:50%;top:var(--tab-swush-y);width:var(--tab-swush-w);height:auto;color:var(--c-white);position:absolute;transform:translate(-50%,-50%)}.page .grid{--h3-pt:max(calc(var(--pt-section) * var(--grid-scale,1)), var(--pt-min));--h3-pad:calc(1.6mm * var(--grid-scale,1));--rubrikrad:calc(var(--h3-pt) * 1.15 + var(--h3-pad));grid-template-columns:var(--grid-first) 1fr 1fr;gap:var(--grid-gap);padding:var(--grid-pad-top) var(--side) 0;display:grid}.page .box{background:var(--c-latte);color:var(--c-ristretto);padding:var(--box-pad);padding-top:var(--rubrikrad);border-radius:var(--box-r)}.page h3{font-size:var(--h3-pt);padding-bottom:var(--h3-pad);border-bottom:1.3px solid var(--c-ristretto);margin-bottom:calc(2mm * var(--grid-scale,1));font-weight:700;line-height:1.15}.page .box .regel{margin-bottom:calc(2mm * var(--grid-scale,1));border-bottom:1px solid #1e181338}.page .sec+.sec{margin-top:calc(6mm * var(--grid-scale,1))}.page .usp{font-size:max(calc(var(--pt-usp) * var(--grid-scale,1)), var(--pt-min));line-height:1.35;list-style:none}.page .usp li{padding:calc(1.3mm * var(--grid-scale,1)) 0}.page .usp li:first-child{padding-bottom:calc(2mm * var(--grid-scale,1));margin-bottom:calc(.8mm * var(--grid-scale,1));border-bottom:1px solid #1e181338;font-weight:700}.page .chips{gap:calc(1.4mm * var(--grid-scale,1));flex-wrap:wrap;display:flex}.page .chip{font-size:max(calc(var(--pt-chip) * var(--grid-scale,1)), var(--pt-min));padding:calc(1mm * var(--grid-scale,1)) 2.2mm;border:1px solid var(--c-ristretto);border-radius:10px;line-height:1.2}.page .chip.f{background:var(--c-ristretto);color:var(--c-milk)}.page .kan{border:.5px solid var(--c-latte);border-radius:var(--canister-r);padding:calc(2mm * var(--grid-scale,1)) 2.4mm;background:var(--c-white);margin-bottom:calc(2mm * var(--grid-scale,1))}.page .kan-rad{font-size:max(calc(var(--pt-table) * var(--grid-scale,1)), var(--pt-min));padding:calc(.9mm * var(--grid-scale,1)) 0;align-items:center;gap:2mm;line-height:1.25;display:flex}.page .kan-rad+.kan-rad{border-top:.5px solid var(--c-latte)}.page .kan-prickar{flex:none;gap:.7mm;width:9mm;display:flex}.page .kan-prickar i{background:var(--c-coffee-milk);border-radius:50%;width:1.8mm;height:1.8mm}.page .kan-namn{flex:auto;font-weight:600}.page .kan-antal{color:var(--c-secondary);flex:none}.page .kan-kod{margin-top:calc(1.4mm * var(--grid-scale,1));font-size:var(--pt-min);color:var(--c-secondary);letter-spacing:.06em}.page table.kv{border-collapse:collapse;width:100%;font-size:max(calc(var(--pt-table) * var(--grid-scale,1)), var(--pt-min))}.page .kv td{padding:calc(.75mm * var(--grid-scale,1)) 0;vertical-align:top;line-height:1.3}.page .kv td:first-child{color:var(--c-secondary);width:44%;padding-right:2mm}.page .kv tr{border-bottom:.5px solid var(--c-latte)}.page .ok:before{content:"";background:var(--c-leaf);vertical-align:0;border-radius:50%;width:2.2mm;height:2.2mm;margin-right:1.4mm;display:inline-block}.page .note{font-size:max(calc(var(--pt-note) * var(--grid-scale,1)), var(--pt-min));color:var(--c-secondary);margin-top:calc(2mm * var(--grid-scale,1));border-top:.5px solid var(--c-latte);padding-top:calc(1.5mm * var(--grid-scale,1));line-height:1.4}.page .tag{left:var(--side);bottom:calc(var(--foot-h) + var(--tag-blank) * var(--tag-lh) * var(--pt-tagline));max-width:150mm;font-size:var(--pt-tagline);line-height:var(--tag-lh);position:absolute}.page .tag b{font-weight:700}.page .foot{height:var(--foot-h);background:var(--c-attention);padding:0 var(--side);font-size:var(--pt-foot);justify-content:space-between;align-items:center;line-height:1.4;display:flex;position:absolute;bottom:0;left:0;right:0}.page .foot .flamma{height:10mm;color:var(--c-ristretto)}.page .foot .flamma svg{width:auto;height:100%;display:block}@page{size:A4;margin:0}@media print{body{background:#fff}.no-print{display:none!important}.page{box-shadow:none}.page+.page{break-before:page}.page,.page *{-webkit-print-color-adjust:exact;print-color-adjust:exact}}@font-face{font-family:Graebenbach;src:url(/fonts/graebenbach-400.ttf)format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Graebenbach;src:url(/fonts/graebenbach-500.ttf)format("truetype");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Graebenbach;src:url(/fonts/graebenbach-700.ttf)format("truetype");font-weight:700;font-style:normal;font-display:swap}:root{--milk:#f6f4ef;--latte:#e2ded3;--att:#ffcc03;--cm:#b8965b;--ris:#1e1813;--sec:#6b5647;--leaf:#63b339;--alert:#eb5e1c;--font:"Graebenbach", system-ui, Helvetica, Arial, sans-serif;--radius:8px;--pill:999px;--ease:cubic-bezier(.2, .8, .2, 1)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font);background:var(--milk);color:var(--ris);-webkit-font-smoothing:antialiased;font-size:15px;line-height:1.5}.btn{font-family:var(--font);border-radius:var(--pill);cursor:pointer;border:1px solid #0000;padding:9px 16px;font-size:13.5px;font-weight:500;text-decoration:none;display:inline-block}.btn-primary{background:var(--att);color:var(--ris)}.btn-primary:hover{background:#ffd633}.btn-ghost{color:var(--ris);border-color:var(--latte);background:#fff}.btn-ghost:hover{border-color:var(--cm)}.topbar{border-bottom:1px solid var(--latte);z-index:20;background:#fff;align-items:center;gap:18px;padding:16px 28px;display:flex;position:sticky;top:0}.topbar .logo{width:132px;color:var(--ris);flex:none}.topbar .logo svg{width:100%;height:auto;display:block}.topbar h1{font-size:16px;font-weight:700}.topbar .spacer{flex:1}.topbar .count{color:var(--sec);font-size:13px}.layout{grid-template-columns:340px minmax(0,1fr);align-items:start;gap:28px;max-width:1520px;margin:0 auto;padding:24px 28px 90px;display:grid}.layout-single{max-width:720px;margin:0 auto;padding:48px 28px}@media (width<=1000px){.layout{grid-template-columns:1fr}.filters{position:static!important}}.filters{background:#fff;border-radius:14px;flex-direction:column;gap:22px;max-height:calc(100vh - 112px);padding:24px;display:flex;position:sticky;top:88px;overflow-y:auto;box-shadow:0 1px 2px #2a1b1414}.panel-title{font-size:21px;font-weight:700}.filter-section{flex-direction:column;gap:14px;display:flex}.filter-section>h3{letter-spacing:.03em;text-transform:uppercase;color:var(--cm);font-size:11.5px;font-weight:700}.filter-group h4{margin-bottom:8px;font-size:13px;font-weight:700}.search-input,select.filter-select{border-radius:var(--radius);border:1px solid var(--latte);width:100%;font-family:var(--font);background:var(--milk);color:var(--ris);padding:10px 12px;font-size:14px}.search-input:focus{outline:2px solid var(--cm);outline-offset:1px}.chip-group{flex-wrap:wrap;gap:6px;display:flex}.fchip{font-family:var(--font);border-radius:var(--pill);border:1px solid var(--latte);background:var(--milk);color:var(--ris);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .15s var(--ease), border-color .15s var(--ease);padding:6px 11px;font-size:12.5px;font-weight:500}.fchip:hover{border-color:var(--cm)}.fchip.active{background:var(--ris);border-color:var(--ris);color:var(--milk)}.range-row{gap:8px;display:flex}.range-row input{border-radius:var(--radius);border:1px solid var(--latte);width:100%;font-family:var(--font);background:var(--milk);color:var(--ris);padding:8px 9px;font-size:13px}.toggle-row{cursor:pointer;align-items:center;gap:8px;padding:2px 0;font-size:13.5px;display:flex}.toggle-row input{accent-color:var(--cm);width:16px;height:16px}hr.sep{border:none;border-top:1px solid var(--latte)}.clear-link{color:var(--sec);cursor:pointer;font-size:12.5px;font-family:var(--font);text-align:left;background:0 0;border:none;text-decoration:underline}.clear-link:hover{color:var(--alert)}.resultbar{align-items:baseline;gap:12px;margin-bottom:16px;display:flex}.resultbar strong{font-size:19px;font-weight:700}.resultbar span{color:var(--sec);font-size:13px}.grid-cards{grid-template-columns:repeat(auto-fill,minmax(232px,1fr));gap:16px;display:grid}.card{border:1px solid var(--latte);cursor:pointer;text-align:left;color:inherit;transition:box-shadow .16s var(--ease), transform .16s var(--ease), border-color .16s var(--ease);background:#fff;border-radius:14px;flex-direction:column;gap:10px;padding:16px;text-decoration:none;display:flex}.card:hover{border-color:var(--cm);transform:translateY(-2px);box-shadow:0 2px 10px #2a1b141a}.card-figure{background:var(--milk);border-radius:var(--radius);justify-content:center;align-items:center;height:140px;display:flex;overflow:hidden}.card-figure img{object-fit:contain;max-width:100%;max-height:100%}.card-figure .ph{width:56px;color:var(--latte)}.card-eyebrow{letter-spacing:.04em;text-transform:uppercase;color:var(--cm);font-size:11px;font-weight:700}.card-name{font-size:15.5px;font-weight:700;line-height:1.25}.card-meta{color:var(--sec);font-size:12.5px}.card-tags{flex-wrap:wrap;gap:4px;margin-top:auto;display:flex}.tag-pill{border-radius:var(--pill);background:var(--latte);color:var(--sec);padding:3px 8px;font-size:11px}.empty{border:1px dashed var(--latte);text-align:center;color:var(--sec);background:#fff;border-radius:14px;padding:40px}.notice{background:#fff;border-radius:14px;flex-direction:column;align-items:flex-start;gap:16px;padding:32px;display:flex}.notice h2{font-size:19px;font-weight:700}.loading{color:var(--sec)}.sheet-view{background:#1e18138c;min-height:100vh;padding:28px 20px 60px}.sheet-toolbar{z-index:5;align-items:center;gap:10px;max-width:210mm;margin:0 auto 16px;display:flex;position:sticky;top:0}.sheet-toolbar .spacer{flex:1}.sheet-toolbar .hint{color:var(--milk);opacity:.85;font-size:12px}.sheets{max-width:210mm;margin:0 auto}@media print{.sheet-view{background:0 0;min-height:0;padding:0}.sheets{max-width:none;margin:0}}.admin-nav{gap:14px;margin-left:18px;display:flex}.admin-nav a{color:var(--sec);font-size:14px;text-decoration:none}.admin-nav a.active{color:var(--ris);font-weight:700}.admin-main{max-width:1520px;margin:0 auto;padding:24px 28px 90px}.admin-toolbar{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:16px;display:flex}.admin-table{border-collapse:collapse;background:#fff;border-radius:14px;width:100%;font-size:14px;overflow:hidden}.admin-table th,.admin-table td{text-align:left;border-bottom:1px solid var(--latte);vertical-align:top;padding:10px 12px}.admin-table td{overflow-wrap:anywhere}.admin-table th{text-transform:uppercase;letter-spacing:.03em;color:var(--sec);font-size:12px}.admin-panel{background:#fff;border-radius:14px;margin-top:24px;padding:20px 24px}.admin-panel h2{margin-bottom:12px;font-size:17px}.field{flex-direction:column;gap:4px;margin-bottom:12px;display:flex}.field label,.field legend{font-size:13px;font-weight:700}.field-hint{opacity:.7;font-weight:400}.field input[type=text],.field input[type=number],.field input[type=date],.field select,.field textarea{border-radius:var(--radius);border:1px solid var(--latte);font-family:var(--font);background:var(--milk);padding:8px 10px;font-size:14px}.field-error{color:var(--alert);font-size:12.5px}.field .row{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:6px;display:flex}.field .checks{flex-wrap:wrap;gap:6px 16px;font-size:14px;display:flex}.form-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0 20px;display:grid}.edit-layout{grid-template-columns:minmax(0,1fr) 125mm;align-items:start;gap:28px;display:grid}.edit-layout .preview{position:sticky;top:88px}.preview-frame{width:115.5mm;height:163.35mm;overflow:hidden}.preview-frame .page{transform-origin:0 0;transform:scale(.55)}.banner{border-radius:10px;margin-bottom:16px;padding:12px 16px}.banner-warn{border:1px solid var(--att);background:#fff4e0}.banner-ok{border:1px solid var(--leaf);background:#eef7e8}.image-slot{grid-template-columns:120px 1fr;align-items:start;gap:6px 16px;margin-bottom:16px;display:grid}.image-slot img{object-fit:contain;background:var(--milk);border-radius:var(--radius);width:120px;height:120px}.tabs{flex-wrap:wrap;gap:6px;margin-bottom:16px;display:flex}.tabs a{border-radius:var(--pill);border:1px solid var(--latte);color:var(--ris);padding:6px 12px;font-size:13.5px;text-decoration:none}.tabs a.active{background:var(--ris);color:var(--milk);border-color:var(--ris)}@media (width<=1200px){.edit-layout{grid-template-columns:1fr}.edit-layout .preview{position:static}}
