:root{--pico-font-size:94%;}.app-header{display:flex;justify-content:space-between;align-items:center;padding:.65rem 1.2rem;border-bottom:1px solid var(--pico-muted-border-color);position:sticky;top:0;background:var(--pico-background-color);z-index:20}.app-header>div{display:flex;gap:1rem;align-items:baseline}.muted{color:var(--pico-muted-color);font-size:.85rem}.app-shell{max-width:1800px;padding:1rem}.steps{display:flex;gap:.35rem;overflow:auto;margin-bottom:1rem}.step{white-space:nowrap;padding:.45rem .7rem;font-size:.82rem;background:transparent;color:var(--pico-muted-color);border-color:var(--pico-muted-border-color)}.step.active{background:var(--pico-primary-background);color:var(--pico-primary-inverse)}.step.done{border-color:var(--pico-primary-border);color:var(--pico-primary)}.panel{border:1px solid var(--pico-muted-border-color);border-radius:var(--pico-border-radius);padding:1.25rem;background:var(--pico-card-background-color)}.grid2,.grid3{display:grid;gap:1rem}.grid2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid3{grid-template-columns:repeat(3,minmax(0,1fr))}.actions{display:flex;gap:.75rem;justify-content:flex-end;margin-top:1.25rem}.notice{padding:.75rem 1rem;border-radius:.4rem;margin-bottom:1rem;background:var(--pico-secondary-background)}.notice.error,.error{color:#b42318}.compact{padding:.35rem .6rem;font-size:.8rem}.preview-wrap,.table-wrap{overflow:auto;max-height:62vh;border:1px solid var(--pico-muted-border-color);margin:.75rem 0}.compact-table,.review-table{font-size:.78rem;white-space:nowrap;margin:0}.header-row{background:color-mix(in srgb,var(--pico-primary) 12%,transparent)}.mapping-list{display:grid;gap:.4rem}.mapping-row{display:grid;grid-template-columns:minmax(280px,1.4fr) minmax(220px,1fr) 180px;gap:1rem;align-items:center;padding:.55rem;border-bottom:1px solid var(--pico-muted-border-color)}.mapping-row small{display:block}.example{font-size:.75rem;color:var(--pico-muted-color)}.margin-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.7rem}.margin-grid label{display:grid;grid-template-columns:1fr auto;align-items:center}.margin-grid label span:first-child{grid-column:1/-1}.stats{display:flex;gap:.6rem;flex-wrap:wrap}.stats article{padding:.6rem .8rem;min-width:120px;margin:0}.stats strong{display:block;font-size:1.2rem}.toolbar{display:flex;gap:1rem;align-items:end;justify-content:space-between;margin:.7rem 0}.review-table td,.review-table th{padding:.45rem;vertical-align:top}.review-table input,.review-table select{min-width:120px;margin:0;padding:.35rem}.price-input{width:100px}.row-review{background:color-mix(in srgb,#f59e0b 10%,transparent)}.row-conflict{background:color-mix(in srgb,#ef4444 10%,transparent)}.flags{display:block;max-width:220px;white-space:normal;color:#b54708}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.detail-grid>div{display:grid;gap:.25rem}.span2{grid-column:1/-1}.detail-grid pre{max-height:260px;overflow:auto;font-size:.75rem}.login-shell{max-width:520px;padding-top:8vh}.login-shell article{padding:2rem}@media(max-width:900px){.grid2,.grid3,.margin-grid{grid-template-columns:1fr}.mapping-row{grid-template-columns:1fr}.app-header .muted{display:none}}
.rule-row{display:grid;grid-template-columns:1fr 1fr auto;gap:.6rem;align-items:center;margin:.4rem 0}.export-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.export-grid article{margin:0}.export-grid button{width:100%}@media(max-width:900px){.rule-row,.export-grid{grid-template-columns:1fr}}
.matching-fields{margin-top:1rem}.manufacturer-picker{position:relative}.manufacturer-results{position:absolute;z-index:30;left:0;right:0;max-height:260px;overflow:auto;background:var(--pico-card-background-color);border:1px solid var(--pico-muted-border-color);border-radius:var(--pico-border-radius);box-shadow:0 10px 28px rgba(0,0,0,.12);padding:.35rem;margin-top:-.7rem}.manufacturer-result{width:100%;display:flex;justify-content:space-between;align-items:center;text-align:left;margin:0;padding:.5rem .65rem;border-radius:.35rem;border:0}.manufacturer-result:hover{background:color-mix(in srgb,var(--pico-primary) 8%,transparent)}.manufacturer-result small{color:var(--pico-muted-color);margin-left:1rem}.manufacturer-empty{padding:.7rem;color:var(--pico-muted-color);font-size:.85rem}.tag-list{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.45rem}.tag{display:inline-flex;align-items:center;gap:.35rem;padding:.28rem .48rem;border-radius:999px;background:color-mix(in srgb,var(--pico-primary) 12%,transparent);border:1px solid color-mix(in srgb,var(--pico-primary) 25%,var(--pico-muted-border-color));font-size:.82rem}.tag button{border:0;background:transparent;color:inherit;padding:0 .1rem;margin:0;min-width:auto;font-size:1rem;line-height:1}.tag button:hover{background:transparent;color:var(--pico-del-color)}

.pricing-settings{display:grid;gap:1rem;max-width:760px}.setting-toggle{display:flex;gap:.7rem;align-items:flex-start;padding:.8rem 0}.setting-toggle input{margin-top:.2rem}.setting-toggle span{display:grid;gap:.15rem}.setting-toggle small{color:var(--pico-muted-color);font-weight:400}.margin-section{border-top:1px solid var(--pico-muted-border-color);padding-top:.9rem}.margin-section h3{margin-bottom:.15rem}.margin-list{display:grid;gap:.45rem;margin-top:.7rem;max-width:520px}.margin-row{display:grid;grid-template-columns:minmax(180px,1fr) 150px;gap:1rem;align-items:center;margin:0;padding:.45rem 0;border-bottom:1px solid color-mix(in srgb,var(--pico-muted-border-color) 70%,transparent)}.percent-input{display:grid;grid-template-columns:1fr auto;gap:.4rem;align-items:center}.percent-input input{margin:0}.percent-input>span{color:var(--pico-muted-color)}@media(max-width:600px){.margin-row{grid-template-columns:1fr}.percent-input{max-width:180px}}

/* Duab-branding. Färgerna ligger som CSS-variabler för enkel finjustering. */
:root{--duab-red:#e30613;--duab-black:#111111;--duab-red-dark:#b9000b;--pico-primary:var(--duab-red);--pico-primary-background:var(--duab-red);--pico-primary-border:var(--duab-red);--pico-primary-hover:var(--duab-red-dark);--pico-primary-hover-background:var(--duab-red-dark);--pico-primary-hover-border:var(--duab-red-dark);--pico-primary-focus:rgba(227,6,19,.22)}
[x-cloak]{display:none!important}.app-header{background:var(--duab-black);color:#fff;border-bottom:3px solid var(--duab-red)}.app-header .muted{color:#c7c7c7}.brand{display:flex!important;gap:.8rem!important;align-items:center!important}.brand>div{display:grid;gap:.08rem}.brand-logo{width:92px;height:30px;object-fit:contain}.run-toolbar{position:relative;display:flex;justify-content:flex-end;margin-bottom:.7rem}.draft-actions{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.draft-menu{position:absolute;right:0;top:calc(100% + .35rem);z-index:45;width:min(520px,95vw);max-height:360px;overflow:auto;background:var(--pico-card-background-color);border:1px solid var(--pico-muted-border-color);border-radius:.5rem;box-shadow:0 14px 35px rgba(0,0,0,.18);padding:.6rem}.draft-row{display:grid;grid-template-columns:1fr auto;gap:.5rem;align-items:center;padding:.35rem 0;border-bottom:1px solid var(--pico-muted-border-color)}.draft-open{background:transparent!important;color:inherit!important;border:0!important;text-align:left!important;padding:.4rem!important;margin:0!important}.draft-open strong,.draft-open small{display:block}.draft-open small{color:var(--pico-muted-color)}
.steps{gap:.55rem}.step{display:flex;align-items:center;gap:.45rem;border:0;border-bottom:3px solid transparent;border-radius:.4rem;background:#f3f3f3;color:#555}.step-indicator{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:#d8d8d8;color:#333;font-weight:700;font-size:.75rem}.step.active{background:#fff;color:var(--duab-black);border-bottom-color:var(--duab-red);box-shadow:0 1px 5px rgba(0,0,0,.08)}.step.active .step-indicator{background:var(--duab-red);color:#fff}.step.done{background:#f8f8f8;color:var(--duab-black)}.step.done .step-indicator{background:var(--duab-black);color:#fff}.step:not(.available):not(.done){opacity:.45;cursor:not-allowed}
.busy-overlay{position:fixed;inset:0;z-index:1000;background:rgba(0,0,0,.68);display:grid;place-items:center;backdrop-filter:blur(1px)}.busy-card{min-width:min(360px,88vw);background:#fff;color:#111;border-radius:.65rem;padding:1.5rem;display:grid;justify-items:center;gap:.8rem;box-shadow:0 24px 80px rgba(0,0,0,.45);border-top:5px solid var(--duab-red)}.busy-card small{color:#666}.busy-spinner{width:46px;height:46px;border-radius:50%;border:5px solid #ddd;border-top-color:var(--duab-red);animation:duab-spin .8s linear infinite}@keyframes duab-spin{to{transform:rotate(360deg)}}
.section-heading{display:flex;justify-content:space-between;gap:1rem;align-items:start}.file-add{display:grid;grid-template-columns:1fr auto;gap:.7rem;align-items:end;margin:1rem 0}.file-add input,.file-add button{margin:0}.file-list{display:grid;gap:.8rem}.file-card{margin:0;padding:1rem;border-left:4px solid var(--duab-red)}.file-card-head{display:flex;justify-content:space-between;gap:1rem;align-items:start}.file-card-head small{display:block;color:var(--pico-muted-color)}.file-controls{display:flex;gap:.6rem;align-items:end}.file-controls label{margin:0;max-width:110px}.file-controls input{margin:0}.mapping-file-tabs{display:flex;gap:.4rem;flex-wrap:wrap;margin-bottom:1rem}.mapping-file-tabs .active-file{background:var(--duab-black);border-color:var(--duab-black);color:#fff}.mapping-file-title{display:flex;align-items:center;gap:.7rem;margin-bottom:.7rem}.status-rule-panel{margin-top:1.2rem;padding:1rem;border:1px solid var(--pico-muted-border-color);border-left:4px solid var(--duab-red);border-radius:.45rem;background:color-mix(in srgb,var(--duab-red) 2.5%,var(--pico-card-background-color))}
@media(max-width:700px){.section-heading,.file-card-head{display:grid}.file-add{grid-template-columns:1fr}.file-controls{justify-content:space-between}.brand-logo{width:76px}}


/* v1.0.16 – konsekvent Duab-branding och tydlig stegsstatus. */
:root{
  --duab-red:#e32321;
  --duab-red-dark:#bd1717;
  --duab-black:#111111;
  --duab-black-hover:#2a2a2a;
  --pico-primary:var(--duab-red);
  --pico-primary-background:var(--duab-red);
  --pico-primary-border:var(--duab-red);
  --pico-primary-hover:var(--duab-red-dark);
  --pico-primary-hover-background:var(--duab-red-dark);
  --pico-primary-hover-border:var(--duab-red-dark);
  --pico-primary-focus:rgba(227,35,33,.24);
  --pico-secondary:var(--duab-black);
  --pico-secondary-background:var(--duab-black);
  --pico-secondary-border:var(--duab-black);
  --pico-secondary-hover:var(--duab-black-hover);
  --pico-secondary-hover-background:var(--duab-black-hover);
  --pico-secondary-hover-border:var(--duab-black-hover);
}

/* Primära actions är röda. */
button:not(.secondary):not(.contrast),
input[type="submit"],
input[type="button"]{
  --pico-background-color:var(--duab-red);
  --pico-border-color:var(--duab-red);
}
button:not(.secondary):not(.contrast):hover,
input[type="submit"]:hover,
input[type="button"]:hover{
  --pico-background-color:var(--duab-red-dark);
  --pico-border-color:var(--duab-red-dark);
}

/* Sekundära actions är svarta. */
button.secondary:not(.outline){
  background:var(--duab-black);
  border-color:var(--duab-black);
  color:#fff;
}
button.secondary:not(.outline):hover{
  background:var(--duab-black-hover);
  border-color:var(--duab-black-hover);
  color:#fff;
}

/* Tertiära actions: vit yta, svart text/kant. */
button.secondary.outline{
  background:#fff;
  border-color:#555;
  color:var(--duab-black);
}
button.secondary.outline:hover{
  background:#f3f3f3;
  border-color:var(--duab-black);
  color:var(--duab-black);
}
button.outline:not(.secondary){
  background:#fff;
  border-color:var(--duab-red);
  color:var(--duab-red);
}
button.outline:not(.secondary):hover{
  background:color-mix(in srgb,var(--duab-red) 7%,#fff);
  border-color:var(--duab-red-dark);
  color:var(--duab-red-dark);
}

/* Inputs ska inte återfå Pico-blå accent. */
input[type="checkbox"],input[type="radio"]{accent-color:var(--duab-red)}
:where(input,select,textarea):focus{
  --pico-box-shadow:0 0 0 .2rem rgba(227,35,33,.16);
  border-color:var(--duab-red);
}

/* Riktig Duab-logotyp på svart header. */
.brand-logo{
  width:126px;
  height:auto;
  max-height:42px;
  object-fit:contain;
  object-position:left center;
}
.app-header .secondary.outline{
  background:transparent;
  border-color:#707070;
  color:#fff;
}
.app-header .secondary.outline:hover{
  background:var(--duab-red);
  border-color:var(--duab-red);
  color:#fff;
}

/* Ett steg kan aldrig vara både aktivt och klart. */
.step.active{
  background:#fff;
  color:var(--duab-black);
  border-bottom-color:var(--duab-red);
  box-shadow:0 1px 5px rgba(0,0,0,.08);
}
.step.active .step-indicator{background:var(--duab-red);color:#fff}
.step.done{
  background:#f7f7f7;
  color:var(--duab-black);
  border-bottom-color:#d8d8d8;
  box-shadow:none;
}
.step.done .step-indicator{background:var(--duab-black);color:#fff}

@media(max-width:700px){.brand-logo{width:104px;max-height:36px}}

/* v1.0.34: paginerad review för låg minnesprofil */
.pagination-bar{display:flex;align-items:center;justify-content:center;gap:1rem;margin:1rem 0;flex-wrap:wrap}.pagination-bar span{font-size:.9rem;color:var(--pico-muted-color)}


/* v1.0.37: review-sok, kolumnhjalp och leverantorsdata i detaljlage */
.review-toolbar{align-items:end;justify-content:flex-start;flex-wrap:wrap}.review-toolbar>label{margin:0}.review-search{min-width:min(460px,100%);flex:1}.review-search input{margin:0}.column-help{margin:.75rem 0 1rem}.column-help-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.7rem 1.2rem;padding-top:.7rem}.column-help-grid>div{display:grid;gap:.12rem}.column-help-grid span{font-size:.84rem;color:var(--pico-muted-color)}.match-cell{white-space:normal;min-width:190px}.supplier-source{border-top:1px solid var(--pico-muted-border-color);padding-top:.8rem}.supplier-source h4{margin-bottom:.15rem}.supplier-source-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem 1rem}.supplier-source-grid>div{display:grid;gap:.1rem;padding:.45rem .55rem;background:color-mix(in srgb,var(--pico-muted-border-color) 20%,transparent);border-radius:.35rem}.supplier-source-grid span{overflow-wrap:anywhere}@media(max-width:900px){.column-help-grid,.supplier-source-grid{grid-template-columns:1fr}}

/* Leverantorsdata i detaljlaget: visa appfalt, originalkolumn och varde sida vid sida. */
.supplier-source-table{display:grid;gap:.25rem;margin-top:.5rem}.supplier-source-head,.supplier-source-row{display:grid;grid-template-columns:minmax(9rem,1fr) minmax(12rem,1.4fr) minmax(9rem,1fr);gap:.75rem;align-items:start;padding:.45rem .55rem;border-bottom:1px solid var(--pico-muted-border-color)}.supplier-source-head{font-size:.85rem}.supplier-source-row small{display:block;margin-top:.15rem}.supplier-source-row strong{overflow-wrap:anywhere}@media(max-width:700px){.supplier-source-head{display:none}.supplier-source-row{grid-template-columns:1fr}.supplier-source-row span:nth-child(2)::before{content:'Kolumn: ';font-weight:600}}


/* v1.0.40: reviewtabellen ska lasas som en datatabell, inte som ett formularkort i ett kort. */
.review-table{border-collapse:collapse}
.review-table th{background:var(--pico-card-background-color);border-bottom:1px solid var(--pico-muted-border-color)}
.review-table td{border-bottom:1px solid var(--pico-muted-border-color);vertical-align:middle}
.review-table tbody tr:last-child td{border-bottom:0}
.review-table .table-control{background:transparent;border:1px solid transparent;border-radius:.25rem;box-shadow:none;min-height:2rem;padding:.28rem .38rem}
.review-table .table-control:hover{border-color:var(--pico-muted-border-color);background:color-mix(in srgb,var(--pico-muted-border-color) 12%,transparent)}
.review-table .table-control:focus{border-color:var(--pico-primary-border);background:var(--pico-form-element-background-color);box-shadow:0 0 0 .12rem color-mix(in srgb,var(--pico-primary) 20%,transparent)}
.review-table .price-input{width:108px;text-align:right}
.review-table .status-control{min-width:112px}
.review-table button.compact{padding:.28rem .48rem}

/* v1.0.44: konsekvent Duab UI-palett */
:root{
  --duab-red:#e52321;
  --duab-red-dark:#c91b1a;
  --duab-black:#111111;
  --duab-black-hover:#2b2b2b;
  --duab-success:#18794e;
  --duab-success-bg:#e9f7ef;
  --duab-warning:#7a5700;
  --duab-warning-bg:#fff4cc;
  --duab-error:#b42318;
  --duab-error-bg:#fdecec;
}
.app-header{background:var(--duab-red);color:#fff;border-bottom:0;box-shadow:0 1px 0 rgba(0,0,0,.08)}
.app-header .muted{color:rgba(255,255,255,.82)}
.app-header .secondary.outline{background:transparent;border-color:rgba(255,255,255,.7);color:#fff}
.app-header .secondary.outline:hover{background:#fff;border-color:#fff;color:var(--duab-red)}
.brand-logo{width:128px;max-height:38px;object-fit:contain;object-position:left center}

/* Samma knapphierarki i hela appen. */
button:not(.secondary):not(.contrast),input[type="submit"],input[type="button"]{background:var(--duab-red);border-color:var(--duab-red);color:#fff}
button:not(.secondary):not(.contrast):hover,input[type="submit"]:hover,input[type="button"]:hover{background:var(--duab-red-dark);border-color:var(--duab-red-dark);color:#fff}
button.secondary:not(.outline){background:var(--duab-black);border-color:var(--duab-black);color:#fff}
button.secondary:not(.outline):hover{background:var(--duab-black-hover);border-color:var(--duab-black-hover);color:#fff}
button.secondary.outline{background:transparent;border-color:#555;color:var(--duab-black)}
button.secondary.outline:hover{background:#f3f3f3;border-color:var(--duab-black);color:var(--duab-black)}
button:disabled{opacity:.45;cursor:not-allowed}

/* Statusmeddelanden: aldrig Pico-blå bakgrund med annan textfärg. */
.notice{border:1px solid transparent;background:#f3f4f6;color:var(--duab-black)}
.notice.success{background:var(--duab-success-bg);border-color:#b7e0c7;color:var(--duab-success)}
.notice.warning{background:var(--duab-warning-bg);border-color:#ead483;color:var(--duab-warning)}
.notice.error{background:var(--duab-error-bg);border-color:#f2b8b5;color:var(--duab-error)}

/* Review-toolbar: kompakta raka kontroller. Sökfältet är en enda kontroll, inte input-inuti-input. */
.review-toolbar{display:grid;grid-template-columns:minmax(180px,240px) minmax(220px,280px) minmax(320px,1fr) auto;gap:.75rem;align-items:end}
.review-toolbar>label{display:grid;gap:.3rem;min-width:0}
.review-toolbar select{margin:0;height:42px}
.review-search{min-width:0}
.search-field{display:flex;align-items:center;height:42px;border:1px solid var(--pico-form-element-border-color);border-radius:.35rem;background:var(--pico-form-element-background-color);overflow:hidden;transition:border-color .15s,box-shadow .15s}
.search-field:focus-within{border-color:var(--duab-red);box-shadow:0 0 0 .18rem rgba(229,35,33,.14)}
.search-field>span{display:grid;place-items:center;width:38px;flex:0 0 38px;color:var(--pico-muted-color);font-size:1.15rem}
.search-field input[type="search"]{height:40px;margin:0;padding:.45rem .65rem .45rem 0;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;outline:0!important;min-width:0;width:100%}
.review-toolbar>button{height:42px;margin:0;white-space:nowrap}
@media(max-width:1100px){.review-toolbar{grid-template-columns:1fr 1fr}.review-search{grid-column:1/-1}.review-toolbar>button{justify-self:start}}
@media(max-width:700px){.review-toolbar{grid-template-columns:1fr}.review-search{grid-column:auto}.review-toolbar>button{width:100%}}

/* v1.0.45: sammanhallen form- och statuspalett.
   Rod = primary/header, svart = val/aktiv kontroll, gront = klart/success,
   gra = struktur/form, gult = varning, rott = fel. */
:root{
  --duab-gray-50:#fafafa;
  --duab-gray-100:#f4f4f4;
  --duab-gray-200:#e5e5e5;
  --duab-gray-300:#cfcfcf;
  --duab-gray-500:#737373;
  --duab-success:#18794e;
  --duab-success-strong:#157347;
  --duab-success-bg:#eaf7ef;

  /* Neutralisera Picos bla formular- och borderpalett. */
  --pico-muted-border-color:var(--duab-gray-200);
  --pico-form-element-border-color:var(--duab-gray-300);
  --pico-form-element-active-border-color:var(--duab-black);
  --pico-form-element-focus-color:rgba(17,17,17,.12);
  --pico-form-element-selected-background-color:var(--duab-black);
  --pico-form-element-valid-border-color:var(--duab-gray-300);
}

/* Alla neutrala ytor och containers far samma gra kant. */
.panel,.preview-wrap,.table-wrap,.draft-menu,.manufacturer-results,.status-rule-panel,
.supplier-source,.supplier-source-head,.supplier-source-row,.mapping-row,.margin-section,.margin-row,
.review-table th,.review-table td{
  border-color:var(--duab-gray-200);
}
.panel{box-shadow:none}
.status-rule-panel{border-left-color:var(--duab-gray-300);background:var(--duab-gray-50)}
.file-card{border:1px solid var(--duab-gray-200);border-left:3px solid var(--duab-black);box-shadow:none}

/* Steg: framtida/neutrala gra, aktuellt svart, avklarat tydligt gront. */
.steps{gap:.55rem}
.step{
  background:var(--duab-gray-100);
  color:#555;
  border:1px solid transparent;
  border-bottom:3px solid var(--duab-gray-300);
  box-shadow:none;
}
.step .step-indicator{background:#d7d7d7;color:#333}
.step.active{
  background:#fff;
  color:var(--duab-black);
  border-color:var(--duab-gray-200);
  border-bottom-color:var(--duab-black);
  box-shadow:none;
}
.step.active .step-indicator{background:var(--duab-black);color:#fff}
.step.done{
  background:var(--duab-success-bg);
  color:#135f3d;
  border-color:#c7e6d3;
  border-bottom-color:var(--duab-success-strong);
}
.step.done .step-indicator{background:var(--duab-success-strong);color:#fff}
.step:not(.available):not(.done){opacity:.55}

/* Formkontroller ar neutrala tills anvandaren interagerar. Ingen bla accent. */
:where(input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]),select,textarea){
  border-color:var(--duab-gray-300);
  box-shadow:none;
}
:where(input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]),select,textarea):hover{
  border-color:#a8a8a8;
}
:where(input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]),select,textarea):focus{
  border-color:var(--duab-black)!important;
  box-shadow:0 0 0 .16rem rgba(17,17,17,.10)!important;
  outline:0;
}

/* Checkbox/radio: svart = valt, inte rod/blatt. */
input[type="checkbox"],input[type="radio"]{
  accent-color:var(--duab-black)!important;
  border-color:#a8a8a8!important;
}
input[type="checkbox"]:checked,input[type="radio"]:checked{
  background-color:var(--duab-black)!important;
  border-color:var(--duab-black)!important;
}
input[type="checkbox"]:focus,input[type="radio"]:focus{
  box-shadow:0 0 0 .16rem rgba(17,17,17,.10)!important;
}

/* Valda manufacturers och andra selection-tags ar svarta med vit text. */
.tag{
  background:var(--duab-black);
  border-color:var(--duab-black);
  color:#fff;
}
.tag button{color:#fff!important}
.tag button:hover{color:#fff!important;opacity:.7}
.manufacturer-result:hover{background:var(--duab-gray-100)}

/* Filvaljaren ska folja sekundar hierarki, inte browser/Pico-bla. */
input[type="file"]{
  border-color:var(--duab-gray-300)!important;
  color:var(--duab-black);
}
input[type="file"]::file-selector-button{
  background:var(--duab-black)!important;
  border:0!important;
  border-right:1px solid var(--duab-gray-300)!important;
  color:#fff!important;
  font-weight:600;
}
input[type="file"]::file-selector-button:hover{background:var(--duab-black-hover)!important}

/* Filprioritet och filtillhorande kontroller ska vara neutrala/svarta. */
.file-controls input,.file-controls select{border-color:var(--duab-gray-300)!important}
.file-controls input:focus,.file-controls select:focus{border-color:var(--duab-black)!important;box-shadow:0 0 0 .16rem rgba(17,17,17,.10)!important}
.mapping-file-tabs .active-file{background:var(--duab-black)!important;border-color:var(--duab-black)!important;color:#fff!important}
.mapping-file-tabs button:not(.active-file){background:#fff!important;border-color:var(--duab-gray-300)!important;color:var(--duab-black)!important}
.mapping-file-title .tag{background:var(--duab-black);border-color:var(--duab-black);color:#fff}

/* Sokfalt: exakt en gra ytterkant, svart focus. */
.search-field{
  border-color:var(--duab-gray-300)!important;
  background:#fff;
  box-shadow:none;
}
.search-field:focus-within{
  border-color:var(--duab-black)!important;
  box-shadow:0 0 0 .16rem rgba(17,17,17,.10)!important;
}
.search-field input[type="search"]{border:0!important;box-shadow:none!important}

/* Tabellkontroller anvander samma neutrala states. */
.review-table .table-control:hover{border-color:var(--duab-gray-300);background:var(--duab-gray-50)}
.review-table .table-control:focus{border-color:var(--duab-black);box-shadow:0 0 0 .12rem rgba(17,17,17,.10)}

/* Systemstatus: tydlig semantik och alltid lasbar text. */
.notice{background:var(--duab-gray-100);border-color:var(--duab-gray-200);color:var(--duab-black)}
.notice.success{background:var(--duab-success-bg);border-color:#b7dfc6;color:#125c3a}
.notice.warning{background:var(--duab-warning-bg);border-color:#e7cf78;color:#684a00}
.notice.error{background:var(--duab-error-bg);border-color:#efb5b1;color:#9f1c14}

/* v1.0.46: slutlig neutralisering av steg, borders och sokfalt.
   Steg ar navigation - aldrig primary actions. Formular har samma neutrala geometri. */
:root{
  --duab-border:#d4d4d4;
  --duab-border-strong:#a3a3a3;
  --pico-card-border-color:var(--duab-border);
  --pico-table-border-color:var(--duab-border);
  --pico-dropdown-border-color:var(--duab-border);
  --pico-accordion-border-color:var(--duab-border);
  --pico-form-element-border-color:var(--duab-border);
  --pico-muted-border-color:var(--duab-border);
}

/* Steg far aldrig arva den roda button-paletten. */
.steps .step,
.steps button.step,
.steps button.step:not(.secondary):not(.contrast){
  background:var(--duab-gray-100)!important;
  color:#4b4b4b!important;
  border:1px solid var(--duab-border)!important;
  border-bottom:3px solid var(--duab-border-strong)!important;
  box-shadow:none!important;
}
.steps .step:hover,
.steps .step:focus{
  background:var(--duab-gray-100)!important;
  color:var(--duab-black)!important;
  border-color:var(--duab-border-strong)!important;
  box-shadow:none!important;
}
.steps .step .step-indicator{
  background:#d7d7d7!important;
  color:#333!important;
}
.steps .step.active,
.steps button.step.active:not(.secondary):not(.contrast){
  background:#fff!important;
  color:var(--duab-black)!important;
  border-color:var(--duab-border)!important;
  border-bottom-color:var(--duab-black)!important;
}
.steps .step.active .step-indicator{
  background:var(--duab-black)!important;
  color:#fff!important;
}
.steps .step.done,
.steps button.step.done:not(.secondary):not(.contrast){
  background:var(--duab-success-bg)!important;
  color:#125c3a!important;
  border-color:#b7dfc6!important;
  border-bottom-color:var(--duab-success-strong)!important;
}
.steps .step.done .step-indicator{
  background:var(--duab-success-strong)!important;
  color:#fff!important;
}
.steps .step.done:hover,.steps .step.done:focus{
  background:var(--duab-success-bg)!important;
  color:#125c3a!important;
  border-color:#9fd4b3!important;
  border-bottom-color:var(--duab-success-strong)!important;
}

/* Alla vanliga formularfalt delar samma form, kant och focus. */
:where(input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]):not([type="file"]),select,textarea),
.manufacturer-picker input[type="search"]{
  border:1px solid var(--duab-border)!important;
  border-radius:.25rem!important;
  background:#fff!important;
  box-shadow:none!important;
}
:where(input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]):not([type="file"]),select,textarea):hover,
.manufacturer-picker input[type="search"]:hover{
  border-color:var(--duab-border-strong)!important;
}
:where(input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]):not([type="file"]),select,textarea):focus,
.manufacturer-picker input[type="search"]:focus{
  border-color:var(--duab-black)!important;
  box-shadow:0 0 0 .14rem rgba(17,17,17,.08)!important;
  outline:0!important;
}

/* Search-typer far inte Picos pill-geometri. */
input[type="search"],
input[type="search"]::-webkit-search-decoration,
input[type="search"]::-webkit-search-cancel-button{
  border-radius:.25rem!important;
}

/* Neutrala containers och tabeller: explicit gra kanter, aldrig Pico-bla. */
.panel,article,.preview-wrap,.table-wrap,.manufacturer-results,.draft-menu,
.file-card,.status-rule-panel,.supplier-source,.supplier-source-head,.supplier-source-row,
.mapping-row,.margin-section,.margin-row,.review-table,.review-table th,.review-table td,
details,details summary{
  border-color:var(--duab-border)!important;
}

/* Filinput behaller svart action men samma gra ram/geometri som ovriga falt. */
input[type="file"]{
  border:1px solid var(--duab-border)!important;
  border-radius:.25rem!important;
  background:#fff!important;
  box-shadow:none!important;
}

/* v1.0.47: rakare formular, manufacturer-picker och neutrala nested surfaces. */
:root{
  --duab-border:#c9c9c9;
  --duab-border-soft:#e6e6e6;
}

/* En enda tydlig 1px-kant. Fokus markeras med kant, inte en andra ring. */
:where(input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]):not([type="file"]),select,textarea),
.manufacturer-picker input[type="search"]{
  border:1px solid var(--duab-border)!important;
  border-radius:.18rem!important;
  box-shadow:none!important;
}
:where(input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]):not([type="file"]),select,textarea):focus,
.manufacturer-picker input[type="search"]:focus,
.search-field:focus-within{
  border-color:var(--duab-black)!important;
  box-shadow:none!important;
  outline:none!important;
}

/* Pico ger search-falt extra vansterpadding for en ikon. Manufacturer-sok ar ett vanligt input visuellt. */
.manufacturer-picker input[type="search"]{
  appearance:textfield!important;
  -webkit-appearance:textfield!important;
  background-image:none!important;
  padding-left:.75rem!important;
  padding-right:.75rem!important;
}
.manufacturer-picker input[type="search"]::-webkit-search-decoration{display:none!important}

/* Valda manufacturers: rak svart tagg, vitt neutralt kryss och mer luft mot efterfoljande element. */
.manufacturer-picker .tag-list{margin:.75rem 0 .8rem;gap:.45rem}
.manufacturer-picker .tag{
  border-radius:.18rem!important;
  padding:.3rem .5rem!important;
  background:var(--duab-black)!important;
  border:1px solid var(--duab-black)!important;
  color:#fff!important;
}
.manufacturer-picker .tag button,
.manufacturer-picker .tag button:not(.secondary):not(.contrast){
  appearance:none!important;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  color:#fff!important;
  padding:0 .08rem!important;
  margin:0!important;
  line-height:1!important;
}
.manufacturer-picker .tag button:hover,
.manufacturer-picker .tag button:focus{background:transparent!important;color:#d4d4d4!important;box-shadow:none!important}

/* Autocomplete-listan ar en enkel dropdown, inte ett kort i ett formular. */
.manufacturer-results{
  border:1px solid var(--duab-border)!important;
  border-radius:.18rem!important;
  box-shadow:0 4px 12px rgba(0,0,0,.08)!important;
  margin-top:-.55rem!important;
}

/* Ta bort tjocka/dubbla accentkanter fran nested ytor. */
.panel{border:1px solid var(--duab-border-soft)!important;border-radius:.2rem!important;box-shadow:none!important}
.file-card{border:1px solid var(--duab-border-soft)!important;border-left:1px solid var(--duab-border-soft)!important;border-radius:.2rem!important;box-shadow:none!important}
.status-rule-panel{border:1px solid var(--duab-border-soft)!important;border-left:1px solid var(--duab-border-soft)!important;border-radius:.2rem!important;background:#fafafa!important}
.preview-wrap,.table-wrap{border:0!important;border-top:1px solid var(--duab-border-soft)!important;border-bottom:1px solid var(--duab-border-soft)!important;border-radius:0!important;box-shadow:none!important}
.mapping-row{border:0!important;border-bottom:1px solid var(--duab-border-soft)!important}
.mapping-row:last-child{border-bottom:0!important}
.margin-section,.margin-row,.supplier-source,.supplier-source-head,.supplier-source-row{border-color:var(--duab-border-soft)!important}

/* Fil- och prioritetskontroller foljer samma raka geometri. */
input[type="file"],.file-controls input,.file-controls select{
  border:1px solid var(--duab-border)!important;
  border-radius:.18rem!important;
  box-shadow:none!important;
}
input[type="file"]:focus,.file-controls input:focus,.file-controls select:focus{border-color:var(--duab-black)!important;box-shadow:none!important}

/* v1.0.48: steg ar plana statusytor. Ingen dubbelkant, accent-underkant eller skugga. */
.steps .step,
.steps button.step,
.steps button.step:not(.secondary):not(.contrast),
.steps .step:hover,
.steps .step:focus,
.steps .step.active,
.steps button.step.active:not(.secondary):not(.contrast),
.steps .step.done,
.steps button.step.done:not(.secondary):not(.contrast),
.steps .step.done:hover,
.steps .step.done:focus{
  border:1px solid var(--duab-border)!important;
  border-bottom-width:1px!important;
  box-shadow:none!important;
  outline:0!important;
}
.steps .step.active,
.steps button.step.active:not(.secondary):not(.contrast){
  background:var(--duab-black)!important;
  color:#fff!important;
  border-color:var(--duab-black)!important;
}
.steps .step.active .step-indicator{
  background:#fff!important;
  color:var(--duab-black)!important;
}
.steps .step.done,
.steps button.step.done:not(.secondary):not(.contrast),
.steps .step.done:hover,
.steps .step.done:focus{
  background:var(--duab-success-strong)!important;
  color:#fff!important;
  border-color:var(--duab-success-strong)!important;
}
.steps .step.done .step-indicator{
  background:#fff!important;
  color:var(--duab-success-strong)!important;
}


/* v1.0.49: Review-marginal och ren process-overlay. */
.busy-overlay{
  background:rgba(17,17,17,.72)!important;
  backdrop-filter:blur(2px)!important;
}
.busy-card{
  min-width:min(380px,90vw)!important;
  padding:1.65rem 1.85rem!important;
  border:0!important;
  border-radius:.2rem!important;
  box-shadow:0 18px 48px rgba(0,0,0,.24)!important;
  background:#fff!important;
  color:var(--duab-black)!important;
  gap:.7rem!important;
}
.busy-card::before,.busy-card::after{display:none!important}
.busy-card strong{color:var(--duab-black)!important;font-size:1.05rem}
.busy-card small{color:var(--duab-gray-500)!important}
.busy-spinner{
  width:42px!important;
  height:42px!important;
  border:4px solid var(--duab-gray-200)!important;
  border-top-color:var(--duab-red)!important;
  box-shadow:none!important;
}

/* Review toolbar kan vaxa med Marginal utan att skapa ett nytt formsprak. */
.review-toolbar{
  grid-template-columns:minmax(160px,220px) minmax(210px,260px) minmax(120px,150px) auto minmax(300px,1fr) auto!important;
}
.review-target-margin input{margin:0!important;height:42px!important}
.review-recalculate,.review-approve{height:42px!important;margin:0!important;align-self:end}
@media(max-width:1350px){
  .review-toolbar{grid-template-columns:repeat(4,minmax(0,1fr))!important}
  .review-search{grid-column:1/4!important}
  .review-approve{grid-column:4!important}
}
@media(max-width:850px){
  .review-toolbar{grid-template-columns:1fr 1fr!important}
  .review-search{grid-column:1/-1!important}
  .review-approve{grid-column:auto!important}
}
@media(max-width:600px){
  .review-toolbar{grid-template-columns:1fr!important}
  .review-search,.review-approve{grid-column:auto!important}
  .review-recalculate,.review-approve{width:100%!important}
}
\n\n/* v1.0.50: strict action hierarchy and neutral detail controls. */\n.detail-button{\n  background:transparent!important;\n  border:1px solid var(--duab-gray-300)!important;\n  color:var(--duab-black)!important;\n  box-shadow:none!important;\n}\n.detail-button:hover{\n  background:var(--duab-gray-100)!important;\n  border-color:var(--duab-black)!important;\n  color:var(--duab-black)!important;\n}\ndialog article>header .detail-close{\n  background:transparent!important;\n  border:0!important;\n  color:var(--duab-black)!important;\n  box-shadow:none!important;\n}\ndialog article>header .detail-close:hover{background:var(--duab-gray-100)!important}\n
/* v1.0.51: luft mellan prisregelgrupper och neutral lankfarg. */
.pricing-settings + h3{
  margin-top:1.75rem!important;
}
.panel a,
dialog a,
.app-shell a{
  color:var(--duab-black)!important;
  text-decoration-color:currentColor!important;
}
.panel a:hover,
dialog a:hover,
.app-shell a:hover{
  color:var(--duab-black)!important;
}

/* v1.0.52 – draft Save As dialog */
.save-as-dialog article{width:min(520px,calc(100vw - 2rem));max-width:520px}
.save-as-dialog form{margin:0}
.save-as-dialog footer.dialog-actions{display:flex;justify-content:flex-end;gap:.65rem;margin-top:1.25rem;padding-top:1rem;border-top:1px solid var(--duab-border,#d0d0d0)}
.save-as-dialog footer.dialog-actions button{margin:0}

/* v1.0.54: manual / documentation */
.header-actions{display:flex;align-items:center;gap:.75rem}
.app-header .header-link{color:#fff;text-decoration:none;font-weight:600;border:1px solid rgba(255,255,255,.65);padding:.42rem .7rem;border-radius:4px;line-height:1.2}
.app-header .header-link:hover,.app-header .header-link:focus{color:#fff;border-color:#fff;text-decoration:none}
.manual-page{background:#f5f5f5}
.manual-shell{max-width:980px;margin:0 auto;padding:2rem 1.25rem 4rem}
.manual-document{background:#fff;border:1px solid var(--ui-border,#d6d6d6);border-radius:0;box-shadow:none;padding:3rem 3.5rem;color:#222}
.manual-document h1{margin-top:0}
.manual-document h2{margin-top:2.25rem;padding-top:.5rem;border-top:1px solid #ddd}
.manual-document h3{margin-top:1.5rem}
.manual-document p,.manual-document li{line-height:1.6}
.manual-document blockquote{border-left:4px solid #ed1c24;background:#f7f7f7;padding:.9rem 1.1rem;margin:1.25rem 0;color:#333}
.manual-document blockquote p{margin:0}
.manual-document code{background:#f0f0f0;color:#222;border-radius:2px;padding:.08rem .3rem}
.manual-actions{display:flex;align-items:center;gap:.75rem}
@media (max-width:700px){.manual-document{padding:1.5rem}.manual-shell{padding:1rem}.manual-header{align-items:flex-start;gap:1rem}.manual-actions{flex-wrap:wrap;justify-content:flex-end}}
@media print{
  @page{margin:16mm}
  body.manual-page{background:#fff;color:#000}
  .manual-header{display:none!important}
  .manual-shell{max-width:none;margin:0;padding:0}
  .manual-document{border:0!important;padding:0!important;box-shadow:none!important}
  .manual-document h1,.manual-document h2,.manual-document h3{break-after:avoid}
  .manual-document h2{border-top:1px solid #bbb}
  .manual-document p,.manual-document li,.manual-document blockquote{orphans:3;widows:3}
  .manual-document blockquote{background:#fff;border-left-color:#555}
  a{color:#000!important;text-decoration:none!important}
}
