/* ==========================================================
   DataLeverantörsindex Design System v2
   ----------------------------------------------------------
   Del 1/4
   Variables
   Base
   Layout
   Typography
========================================================== */


/* ==========================================================
   VARIABLES
========================================================== */

/* Brand typography: Switzer is bundled locally with the project. */
@font-face{

    font-family:"Switzer";

    src:url("/static/fonts/Switzer-Variable.woff2") format("woff2");

    font-weight:100 900;

    font-style:normal;

    font-display:swap;

}

@font-face{

    font-family:"Switzer";

    src:url("/static/fonts/Switzer-VariableItalic.woff2") format("woff2");

    font-weight:100 900;

    font-style:italic;

    font-display:swap;

}

:root{

    /* Brand */

    --primary:#2E3A46;
    --accent:#7FB8A6;

    /* Backgrounds */

    --background:#F6F4F1;
    --surface:#E6E2DA;
    --white:#FFFFFF;

    /* Text */

    --text:#2E3A46;
    --text-muted:#56616C;

    /* Borders */

    --border:#DDD8CF;

    /* Radius */

    --radius-sm:8px;
    --radius:12px;
    --radius-lg:18px;

    /* Shadows */

    --shadow-sm:0 2px 6px rgba(46,58,70,.08);
    --shadow:0 8px 24px rgba(46,58,70,.10);

    /* Animation */

    --transition:all .20s ease;

}



/* ==========================================================
   RESET
========================================================== */

*{

    margin:0;

    padding:0;

    box-sizing:border-box;

}



html{

    scroll-behavior:smooth;

}



body{

    background:var(--background);

    color:var(--text);

    min-height:100vh;

    display:flex;

    flex-direction:column;

    font-family:
        Inter,
        "Segoe UI",
        Helvetica,
        Arial,
        sans-serif;

    font-size:16px;

    line-height:1.6;

    -webkit-font-smoothing:antialiased;

}



/* ==========================================================
   LINKS
========================================================== */

a{

    color:var(--primary);

    text-decoration:none;

    transition:var(--transition);

}

a:hover{

    color:var(--accent);

}



/* ==========================================================
   IMAGES
========================================================== */

img{

    max-width:100%;

    height:auto;

}



/* ==========================================================
   LAYOUT
========================================================== */

.page-content{

    padding:32px;

    flex:1;

}

.site-footer{margin-top:24px;background:var(--primary);color:rgba(255,255,255,.72);}.site-footer-inner{display:flex;align-items:center;justify-content:space-between;gap:20px;max-width:1440px;margin:0 auto;padding:22px 32px;}.site-footer-brand{display:flex;align-items:center;gap:9px;color:#fff;font-weight:700;}.site-footer-brand i{color:var(--accent);}.site-footer-copy{font-size:.85rem;}



.container-fluid{

    padding-left:28px;

    padding-right:28px;

}



/* ==========================================================
   TYPOGRAPHY
========================================================== */

.page-title{

    color:var(--primary);

    font-size:2.75rem;

    font-weight:700;

    line-height:1.1;

    letter-spacing:-0.6px;

    margin-bottom:8px;

}



.page-description{

    color:var(--text-muted);

    font-size:1.05rem;

    line-height:1.7;

    max-width:760px;

    margin-bottom:36px;

}



.page-subtitle{

    color:var(--text);

    font-size:1.75rem;

    font-weight:600;

    margin-bottom:16px;

}



.section-title{

    color:var(--primary);

    font-size:1.35rem;

    font-weight:600;

    margin-bottom:18px;

}



.text-muted{

    color:var(--text-muted)!important;

}



/* ==========================================================
   SPACING HELPERS
========================================================== */

.mt-40{

    margin-top:40px;

}

.mb-40{

    margin-bottom:40px;

}

.mb-32{

    margin-bottom:32px;

}

.mb-24{

    margin-bottom:24px;

}

.mb-16{

    margin-bottom:16px;

}

/* ==========================================================
   CARDS
========================================================== */

.card{

    background:var(--white);

    border:none;

    border-radius:var(--radius);

    box-shadow:var(--shadow-sm);

    transition:var(--transition);

    overflow:hidden;

}

.card:hover{

    box-shadow:var(--shadow);

}

.card-header{

    background:var(--surface);

    color:var(--primary);

    padding:16px 20px;

    border-bottom:1px solid var(--border);

    font-weight:600;

}

.card-body{

    padding:24px;

}

.content-card{

    margin-top:40px;

}



/* ==========================================================
   BUTTONS
========================================================== */

.btn{

    border-radius:10px;

    font-weight:500;

    transition:var(--transition);

    box-shadow:none;

}

.btn:focus{

    box-shadow:none;

}

.btn-primary{

    background:var(--primary);

    border:1px solid var(--primary);

    color:#fff;

}

.btn-primary:hover{

    background:#24303B;

    border-color:#24303B;

}

.btn-outline-primary{

    border:1px solid var(--primary);

    color:var(--primary);

    background:transparent;

}

.btn-outline-primary:hover{

    background:var(--primary);

    color:#fff;

}

.btn-success{

    background:var(--accent);

    border-color:var(--accent);

    color:#fff;

}

.btn-success:hover{

    filter:brightness(.95);

}



/* ==========================================================
   BADGES
========================================================== */

.badge{

    padding:.55rem .80rem;

    font-size:.75rem;

    font-weight:600;

    border-radius:999px;

}

.badge.bg-success{

    background:#DFF4EC !important;

    color:#2E6B55 !important;

}

.badge.bg-warning{

    background:#FFF4D6 !important;

    color:#8A6700 !important;

}

.badge.bg-danger{

    background:#FBE4E6 !important;

    color:#A33042 !important;

}

.badge.bg-secondary{

    background:#ECECEC !important;

    color:#555 !important;

}



/* ==========================================================
   NAVBAR
========================================================== */

.navbar{

    background:var(--primary)!important;

    min-height:68px;

    border-bottom:1px solid rgba(255,255,255,.05);

}

.navbar-brand{

    display:flex;

    align-items:center;

    gap:12px;

    color:#fff!important;

    font-weight:700;

    font-size:1.1rem;

}

.brand-symbol{

    width:30px;

    height:30px;

    object-fit:contain;

    flex:0 0 auto;

    /* Originalsymbolen är mörk; navigering och sidfot har mörk bakgrund. */
    filter:brightness(0) invert(1);

}

.brand-symbol-footer{

    width:24px;

    height:24px;

}

.navbar-shell{

    position:relative;

}

.navbar-menu{

    display:flex;

    flex:1;

    align-items:center;

    min-width:0;

}

.mobile-nav-toggle{

    display:none;

    align-items:center;

    justify-content:center;

    width:42px;

    height:42px;

    margin-left:auto;

    padding:0;

    border:1px solid rgba(255,255,255,.35);

    border-radius:9px;

    background:transparent;

    color:#fff;

    font-size:1.5rem;

    line-height:1;

}

.mobile-nav-toggle:hover,
.mobile-nav-toggle:focus-visible{

    background:rgba(255,255,255,.1);

    border-color:var(--accent);

    color:#fff;

}

.navbar-nav{

    gap:10px;

    margin-left:28px;

}

.navbar .nav-link{

    color:rgba(255,255,255,.75);

    padding:.9rem .25rem;

    transition:var(--transition);

}

.navbar .nav-link:hover{

    color:var(--accent);

}

.navbar .nav-link.active{

    color:#fff;

    font-weight:600;

    border-bottom:2px solid var(--accent);

}



/* ==========================================================
   NAVBAR SEARCH
========================================================== */

.navbar-search{

    margin-left:auto;

    position:relative;

    display:flex;

    align-items:center;

    gap:8px;

}

.navbar-search .form-control{

    min-width:320px;

    border-radius:999px;

    border:none;

    padding:.65rem 1rem;

}

.navbar-search .form-control:focus{

    box-shadow:0 0 0 .20rem rgba(127,184,166,.25);

}

.navbar-search .btn{

    border-radius:999px;

    padding:.65rem 1.2rem;

}

#searchResults{

    position:absolute;

    top:100%;

    left:0;

    width:100%;

    margin-top:8px;

    z-index:1050;

    background:#fff;

    border-radius:12px;

    overflow:hidden;

    box-shadow:var(--shadow);

}

/* ==========================================================
   HERO
========================================================== */

.hero{

    text-align:center;

    padding:56px 0 44px;

}

.hero h1{

    color:var(--primary);

    font-size:3.8rem;

    font-weight:800;

    letter-spacing:-1.5px;

    line-height:1.05;

    margin-bottom:18px;

}

.hero p{

    max-width:760px;

    margin:0 auto;

    color:var(--text-muted);

    font-size:1.15rem;

    line-height:1.8;

}

.home-procurement-link{margin-top:16px;}
.home-procurement-section{scroll-margin-top:96px;}
.home-procurement-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;}.home-procurement-heading .btn{margin-left:auto;white-space:nowrap;}
.home-procurement-heading p{margin:5px 0 0;color:var(--text-muted);font-size:.9rem;}
.home-procurement-controls{padding:16px 20px;border-bottom:1px solid var(--border);background:var(--background);}
.home-procurement-pagination{margin:0;padding:14px 20px;border-top:1px solid var(--border);}

/*
   Gemensamt designspråk för hela webbgränssnittet.
   Källtaggar och färger ska använda varumärkets definierade palett.
   ========================================================== */
/* ==========================================================
   SEARCH BOX
========================================================== */

.search-box{

    margin-top:40px;

    margin-bottom:0;

}

.search-box .input-group{

    width:100%;

    max-width:none;

}

.search-box .form-control{

    height:62px;

    border:1px solid var(--border);

    border-right:none;

    border-radius:14px 0 0 14px;

    padding:0 22px;

    font-size:1rem;

    box-shadow:none;

    background:#fff;

}

.search-box .form-control:focus{

    border-color:var(--accent);

    box-shadow:0 0 0 .2rem rgba(127,184,166,.18);

}

.search-box .btn{

    min-width:150px;

    border-radius:0 14px 14px 0;

    font-weight:600;

}



/* ==========================================================
   KPI SECTION
========================================================== */

.kpi-section{

    margin-top:40px;

    margin-bottom:20px;

}



/* ==========================================================
   KPI CARD
========================================================== */

.kpi-card{

    display:flex;

    flex-direction:column;

    justify-content:center;

    align-items:center;

    min-height:145px;

    padding:26px;

    text-align:center;

}

.kpi-card .card-body{

    padding:0;

}

.kpi-title{

    color:var(--text-muted);

    font-size:.85rem;

    font-weight:600;

    letter-spacing:.3px;

    text-transform:uppercase;

    margin-bottom:10px;

}

.kpi-value{

    color:var(--primary);

    font-size:2.3rem;

    font-weight:700;

    line-height:1;

}

.kpi-small{

    margin-top:10px;

    color:var(--text-muted);

    font-size:.85rem;

}



/* ==========================================================
   FEATURE CARDS
========================================================== */

.feature-card{

    height:100%;

}

.feature-card .card-body{

    padding:26px;

}

.feature-card h3{

    color:var(--primary);

    font-size:1.2rem;

    margin-bottom:14px;

}

.feature-card p{

    color:var(--text-muted);

    margin-bottom:0;

}



/* ==========================================================
   STATISTICS
========================================================== */

.stat-number{

    color:var(--primary);

    font-size:2rem;

    font-weight:700;

    line-height:1;

}

.stat-label{

    margin-top:8px;

    color:var(--text-muted);

    font-size:.90rem;

}



/* ==========================================================
   LIST GROUP
========================================================== */

.list-group{

    border-radius:var(--radius);

    overflow:hidden;

}

.list-group-item{

    border:none;

    border-bottom:1px solid var(--border);

    padding:18px 20px;

    transition:var(--transition);

}

.list-group-item:last-child{

    border-bottom:none;

}

.list-group-item:hover{

    background:#FAFAF8;

}

.list-group-item{

    cursor:pointer;

}

.list-group-item:hover{

    transform:translateX(4px);

}

.list-group-item.active{

    background:var(--primary);

    border-color:var(--primary);

    color:#fff;

    font-weight:600;

}

#profile-list{

    max-height:350px;

    overflow-y:auto;

}

.list-group-item.active:hover{

    background:#24303B;

    color:#fff;

}

.list-group{
    border-radius:var(--radius);
}



/* ==========================================================
   CONTENT WRAPPER
========================================================== */

.content-card{

    margin-top:40px;

}

.content-card .card-header{

    padding:18px 24px;

}

.content-card .card-body{

    padding:24px;

}

/* ==========================================================
   TABLES
========================================================== */

.table{

    width:100%;

    margin-bottom:0;

    background:var(--white);

    border-collapse:collapse;

    border-radius:var(--radius);

    overflow:hidden;

}

.table thead{

    background:var(--surface);

}

.table th{

    padding:16px;

    color:var(--primary);

    font-size:.92rem;

    font-weight:600;

    white-space:nowrap;

    border-bottom:1px solid var(--border);

    vertical-align:middle;

}

.table td{

    padding:16px;

    vertical-align:middle;

    border-bottom:1px solid var(--border);

}

.table tbody tr{

    transition:var(--transition);

}

.table tbody tr:hover{

    background:#FAFAF8;

}

.table tbody tr:last-child td{

    border-bottom:none;

}



/* ==========================================================
   TABLE LINKS
========================================================== */

.table a,

.table-link{

    color:var(--primary);

    font-weight:600;

    text-decoration:none;

}

.table a:hover,

.table-link:hover{

    color:var(--accent);

}



/* ==========================================================
   PAGINATION
========================================================== */

.pagination{

    gap:6px;

}

.page-link{

    color:var(--primary);

    border:1px solid var(--border);

    border-radius:10px;

    padding:.55rem .9rem;

}

.page-link:hover{

    background:var(--surface);

    border-color:var(--border);

    color:var(--primary);

}

.page-item.active .page-link{

    background:var(--primary);

    border-color:var(--primary);

}

.table-pagination{

    display:flex;

    justify-content:space-between;

    align-items:center;

    margin-top:24px;

}

/* ==========================================================
   FORMS
========================================================== */

.form-control,

.form-select{

    border:1px solid var(--border);

    border-radius:10px;

    padding:.65rem .9rem;

    box-shadow:none;

}

.form-control:focus,

.form-select:focus{

    border-color:var(--accent);

    box-shadow:0 0 0 .2rem rgba(127,184,166,.18);

}



/* ==========================================================
   ALERTS
========================================================== */

.alert{

    border:none;

    border-radius:var(--radius);

    box-shadow:var(--shadow-sm);

}



/* ==========================================================
   DROPDOWNS
========================================================== */

.dropdown-menu{

    border:none;

    border-radius:var(--radius);

    box-shadow:var(--shadow);

    padding:8px;

}

.dropdown-item{

    border-radius:8px;

    transition:var(--transition);

}

.dropdown-item:hover{

    background:var(--surface);

}



/* ==========================================================
   UTILITIES
========================================================== */

.rounded-xl{

    border-radius:var(--radius-lg);

}

.shadow-sm{

    box-shadow:var(--shadow-sm);

}

.shadow{

    box-shadow:var(--shadow);

}

.bg-surface{

    background:var(--surface);

}

.bg-white{

    background:#fff;

}

.text-primary{

    color:var(--primary)!important;

}

.text-muted{

    color:var(--text-muted)!important;

}



/* ==========================================================
   SCROLLBAR
========================================================== */

::-webkit-scrollbar{

    width:10px;

    height:10px;

}

::-webkit-scrollbar-thumb{

    background:#C7C7C7;

    border-radius:999px;

}

::-webkit-scrollbar-thumb:hover{

    background:#B0B0B0;

}



/* ==========================================================
   RESPONSIVE
========================================================== */

@media (max-width:992px){

    .page-content{

        padding:24px;

    }

    .hero h1{

        font-size:3rem;

    }

    .navbar-shell{

        min-height:68px;

        flex-wrap:nowrap;

    }

    .mobile-nav-toggle{

        display:inline-flex;

    }

    .navbar-menu{

        display:none;

        position:absolute;

        top:calc(100% + 1px);

        left:0;

        right:0;

        z-index:1050;

        flex-direction:column;

        align-items:stretch;

        gap:14px;

        padding:14px 16px 18px;

        background:var(--primary);

        border-top:1px solid rgba(255,255,255,.10);

        border-bottom:3px solid var(--accent);

        box-shadow:0 16px 24px rgba(24,35,45,.24);

    }

    .navbar-menu.is-open{

        display:flex;

    }

    .navbar-nav{

        display:grid;

        grid-template-columns:1fr;

        gap:2px;

        width:100%;

        margin:0;

        padding:0 0 10px;

        border-bottom:1px solid rgba(255,255,255,.14);

    }

    .navbar .nav-link{

        display:flex;

        align-items:center;

        gap:10px;

        padding:.8rem .7rem;

        border-radius:7px;

    }

    .navbar .nav-link.active{

        border-bottom:0;

        background:rgba(127,184,166,.16);

        color:#fff;

    }

    .navbar-search{

        width:100%;

        margin:0;

    }

    .navbar-search .form-control{

        min-width:0;

        width:100%;

    }

    .navbar-profile{

        width:100%;

        height:auto;

        justify-content:flex-start;

        gap:10px;

        margin:0;

        padding:.7rem;

        border-radius:7px;

        font-size:1rem;

    }

    .navbar-profile::after{

        content:"Profiler";

        font-size:.95rem;

        font-weight:600;

    }

}



@media (max-width:768px){

    .page-title{

        font-size:2rem;

    }

    .hero{

        padding:36px 0;

    }

    .hero h1{

        font-size:2.4rem;

    }

    .hero p{

        font-size:1rem;

    }

    .page-content{

        padding:18px;

    }

    .search-box .btn{

        min-width:120px;

    }

    .kpi-card{

        min-height:120px;

    }

}



@media (max-width:576px){

    .container-fluid{

        padding-left:16px;

        padding-right:16px;

    }

    .page-title{

        font-size:1.8rem;

    }

    .table th,

    .table td{

        padding:12px;

    }

}

.search-results{

    display:none;

}

.search-results{

    display:none;

    z-index:1050;

}


.page-container{

    width:100%;

    max-width:1300px;

    margin:0 auto;

}

.search-result-card{
    transition: all .2s ease;
    cursor: pointer;
}

.search-result-card:hover{
    transform: translateY(-2px);
    box-shadow: 0 .5rem 1rem rgba(0,0,0,.12) !important;
}

.affarsprofil-layout{
    display:grid;
    grid-template-columns:2fr 1fr;
    gap:24px;
    align-items:start;
}

@media (max-width:1000px){
    .affarsprofil-layout{
        grid-template-columns:1fr;
    }
}

.affarsprofil-layout{
    display:grid;
    grid-template-columns:2fr 1fr;
    gap:24px;
    align-items:start;

}

/* Källtaggar för det källmedvetna upphandlingsregistret. */
.source-tag{
    display:inline-block;
    margin:.1rem .2rem .1rem 0;
    border:1px solid transparent;
}

.source-ted{
    background:var(--primary);
    color:var(--white);
    border-color:var(--primary);
}

.source-mercell{
    background:var(--accent);
    color:var(--primary);
    border-color:var(--accent);
}

.source-kommers{
    background:var(--surface);
    color:var(--primary);
    border-color:var(--primary);
}

.source-eavrop{
    background:var(--background);
    color:var(--primary);
    border-color:var(--accent);
}

.source-uhm{
    background:var(--white);
    color:var(--primary);
    border-color:var(--border);
}

.navbar-profile{display:flex;align-items:center;justify-content:center;width:40px;height:40px;margin-left:12px;border-radius:50%;color:rgba(255,255,255,.78);font-size:1.35rem;text-decoration:none;transition:var(--transition);}.navbar-profile:hover,.navbar-profile.active{background:rgba(255,255,255,.1);color:#fff;}

.dashboard-data-sources{margin:-15px 0 24px;color:var(--text-muted);font-size:.78rem;line-height:1.45;}
.dashboard-breakdown-item small{display:block;margin-top:4px;color:var(--text-muted);font-size:.76rem;}
.dashboard-insight-row-single{grid-template-columns:minmax(0,1fr);}

.dashboard-page{padding-top:8px;}
.dashboard-hero,.dashboard-section-header{display:flex;justify-content:space-between;gap:24px;align-items:center;}
.dashboard-eyebrow{margin:0 0 6px;color:var(--accent);font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;}
.dashboard-market{display:grid;grid-template-columns:repeat(5,1fr);margin:34px 0 24px;background:var(--surface);border:1px solid var(--border);border-radius:14px;overflow:hidden;box-shadow:var(--shadow-sm);}
.dashboard-insight-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:-8px 0 24px;}.dashboard-import-summary{display:flex;flex-direction:column;justify-content:space-between;gap:16px;padding:18px 20px;background:#F3F8F6;border:1px solid #DCEBE4;border-radius:12px;}.dashboard-import-summary h2{margin:0;color:var(--primary);font-size:1rem;}.dashboard-import-metrics{display:flex;flex-wrap:wrap;gap:10px 18px;}.dashboard-import-metric{display:flex;align-items:baseline;gap:7px;}.dashboard-import-metric strong{color:var(--primary);font-size:1.2rem;}.dashboard-import-metric span{color:var(--text-muted);font-size:.8rem;}
.dashboard-inline-breakdown{display:flex;align-items:center;flex-wrap:wrap;gap:7px;margin-left:auto;color:var(--text-muted);font-size:.8rem;}.dashboard-inline-breakdown strong{color:var(--primary);}.dashboard-inline-breakdown i{color:#A5B8AD;font-style:normal;}
.dashboard-stat{padding:24px;border-right:1px solid var(--border);}
.dashboard-stat:last-child{border-right:0;}
.dashboard-stat span{display:block;color:var(--text-muted);font-size:.85rem;}
.dashboard-stat strong{display:block;margin-top:8px;color:var(--primary);font-size:1.9rem;}
.dashboard-stat small{display:block;margin-top:6px;color:var(--text-muted);font-size:.75rem;line-height:1.35;}
.dashboard-tools{margin:0 0 24px;}.dashboard-tools>.dashboard-section-header{padding:0 0 14px;border-bottom:0;}.dashboard-tools-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;}.dashboard-tool-card{display:flex;gap:15px;align-items:flex-start;padding:20px;text-decoration:none;background:var(--white);border:1px solid var(--border);border-radius:12px;color:var(--primary);box-shadow:var(--shadow-sm);transition:var(--transition);}.dashboard-tool-card:hover{border-color:var(--accent);box-shadow:var(--shadow);color:var(--primary);transform:translateY(-2px);}.dashboard-tool-icon{display:flex;align-items:center;justify-content:center;flex:0 0 42px;width:42px;height:42px;border-radius:10px;background:var(--surface);color:var(--primary);font-size:1.15rem;}.dashboard-tool-card h3{margin:0 0 5px;font-size:1rem;}.dashboard-tool-card p{margin:0 0 12px;color:var(--text-muted);font-size:.86rem;line-height:1.45;}.dashboard-tool-link{color:var(--primary);font-size:.84rem;font-weight:700;}.dashboard-tool-link i{margin-left:4px;color:var(--accent);}
.dashboard-personal{display:flex;justify-content:space-between;gap:24px;align-items:center;padding:26px;margin-bottom:24px;background:var(--primary);color:#fff;border-radius:14px;}
.dashboard-breakdown{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:14px 16px;background:#fff;border:1px solid var(--border);border-radius:12px;}.dashboard-breakdown h2{grid-column:1 / -1;margin:0;color:var(--primary);font-size:.9rem;}.dashboard-breakdown-item{padding:9px 10px;background:#F6F8FA;border-radius:8px;}.dashboard-breakdown-item strong{display:block;color:var(--primary);font-size:1.15rem;}.dashboard-breakdown-item span{display:block;margin-top:2px;color:var(--text-muted);font-size:.75rem;line-height:1.3;}
.inkops-breakdown{grid-template-columns:repeat(2,minmax(0,1fr));}
.inkops-kalltext{grid-column:1/-1;margin:2px 0 0;padding:8px 10px;background:#F3F8F6;border-radius:8px;color:var(--text-muted);font-size:.76rem;line-height:1.35;}
.app-breadcrumbs{display:flex;align-items:center;gap:7px;min-width:0;margin:0 0 14px;color:var(--text-muted);font-size:.8rem;white-space:nowrap;overflow:hidden;}.app-breadcrumbs a{color:var(--primary);text-decoration:none;font-weight:600;}.app-breadcrumbs a:hover{color:var(--accent);text-decoration:underline;}.app-breadcrumbs span{color:#A5B8AD;}.app-breadcrumbs strong{min-width:0;overflow:hidden;text-overflow:ellipsis;color:var(--text-muted);font-weight:600;}.app-breadcrumbs-light{margin-bottom:12px;}.app-breadcrumbs-light a{color:var(--primary);}
.dashboard-personal h2{margin:0 0 6px;font-size:1.25rem;}.dashboard-personal p{margin:0;color:rgba(255,255,255,.78);}.dashboard-personal .dashboard-eyebrow{color:var(--accent);}.dashboard-personal .btn{white-space:nowrap;}
.dashboard-content{display:grid;grid-template-columns:2fr 1fr;gap:24px;align-items:start;}.dashboard-table-card,.dashboard-import-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow-sm);overflow:hidden;}.dashboard-section-header{padding:22px 24px;border-bottom:1px solid var(--border);}.dashboard-section-header h2,.dashboard-import-card h2{margin:0;color:var(--primary);font-size:1.1rem;}.dashboard-section-header p,.dashboard-import-card p{margin:5px 0 0;color:var(--text-muted);font-size:.9rem;}.dashboard-import-card{padding:24px;}.dashboard-import-card strong{display:block;margin:12px 0;color:var(--primary);font-size:1.35rem;}
.dashboard-match-card{margin-bottom:24px;background:#fff;border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow-sm);overflow:hidden;}.dashboard-match-row{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:17px 24px;background:#fff;border-bottom:1px solid var(--border);color:var(--text);text-decoration:none;transition:var(--transition);}.dashboard-match-row:last-child{border-bottom:0;}.dashboard-match-row:hover{background:#FAFAF8;color:var(--text);transform:translateX(4px);}.dashboard-match-row strong,.dashboard-match-row span{display:block;}.dashboard-match-row strong{color:var(--primary);}.dashboard-match-row span{margin-top:4px;color:var(--text-muted);font-size:.9rem;}.dashboard-match-meta{text-align:right;}.dashboard-match-meta span{color:var(--accent);font-weight:600;}.dashboard-match-meta small{display:block;margin-top:5px;color:var(--text-muted);}.dashboard-empty{margin:0;padding:24px;color:var(--text-muted);}
.dashboard-match-row .source-tag{display:inline-flex;width:auto;margin:0 5px 0 0;padding:.35em .65em;vertical-align:middle;}
.dashboard-match-card .dashboard-section-header{background:var(--surface);}
.dashboard-match-row:first-child{border-radius:13px 13px 0 0;}
.dashboard-match-row.is-hidden{display:none;}
  .dashboard-match-list.is-expanded .dashboard-match-row.is-hidden{display:flex;}
  .dashboard-show-more{width:100%;padding:14px;background:#fff;border:0;border-top:1px solid var(--border);color:var(--primary);font-weight:600;text-align:left;}
  .dashboard-show-more:hover{background:#F6F8FA;}
  /* Kompakta tabeller på profilvyer: tre rader visas tills användaren fäller ut listan. */
  .profile-expand-list tr.is-hidden{display:none;}
  .profile-expand-list.is-expanded tr.is-hidden{display:table-row;}
  /* Köparprofilen prioriterar värde och verifierade utfall före historisk kontext. */
  .buyer-profile-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(290px,.48fr);gap:24px;align-items:stretch;margin-bottom:20px;}
  .buyer-profile-hero .page-title{margin:2px 0 8px;}
  .buyer-profile-hero .page-description{max-width:720px;margin-bottom:0;}
  .buyer-value-card{display:flex;flex-direction:column;justify-content:center;padding:24px 26px;background:var(--primary);border-radius:14px;color:#fff;box-shadow:var(--shadow-sm);}
  .buyer-value-card span,.buyer-value-card small{color:#E6E2DA;font-size:.83rem;font-weight:600;letter-spacing:.02em;}
  .buyer-value-card strong{margin:7px 0 5px;font-size:clamp(1.65rem,3vw,2.45rem);line-height:1.05;letter-spacing:-.04em;}
  .buyer-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:24px;}
  .buyer-kpi{min-height:100px;padding:18px 20px;background:#fff;border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-sm);}
  .buyer-kpi span{display:block;margin-bottom:9px;color:var(--text-muted);font-size:.78rem;font-weight:700;letter-spacing:.035em;text-transform:uppercase;}
  .buyer-kpi strong{display:block;color:var(--primary);font-size:1.5rem;line-height:1.15;}
  .buyer-primary-row .content-card{margin-top:0;overflow:hidden;}
  .buyer-outcomes-table-card .table-responsive,.buyer-active-card .table-responsive,.buyer-history-card .table-responsive{border-radius:var(--radius);overflow:hidden;}
  .buyer-outcomes-table-card .table-responsive.table-with-more,.buyer-active-card .table-responsive.table-with-more,.buyer-history-card .table-responsive.table-with-more{border-radius:var(--radius) var(--radius) 0 0;}
  .buyer-outcomes-header{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin:0 0 16px;}
  .buyer-outcomes-header h2{margin:0 0 6px;}
  .buyer-section-total{color:var(--primary);font-size:1.35rem;line-height:1.05;}
  .buyer-insight-panel{display:flex;flex-direction:column;background:#fff;border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow-sm);overflow:hidden;}
  .buyer-insight-section{padding:18px 20px;border-bottom:1px solid var(--border);}
  .buyer-insight-section:last-child{border-bottom:0;}
  .buyer-insight-section h2{margin:0 0 13px;color:var(--primary);font-size:1rem;}
  .buyer-insight-section h2 i{margin-right:7px;color:var(--accent);}
  .buyer-insight-section .list-group-item{padding:8px 0;border-left:0;border-right:0;font-size:.9rem;}
  .buyer-insight-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .buyer-insight-section .list-group-item .badge{flex:0 0 auto;margin-left:12px;}
  /* Leverantörsvyn behöver en läsbar, stabil yta för antal anbud. */
  .leverantor-utfall-table th:last-child,.leverantor-utfall-table td:last-child{width:76px;min-width:76px;white-space:nowrap;}
  .buyer-source-list{display:grid;gap:9px;}
  .buyer-source-list>div{display:flex;align-items:center;justify-content:space-between;}
  .buyer-source-list strong{color:var(--primary);font-size:.9rem;}
  .buyer-code-list{display:grid;gap:8px;}
  .buyer-code-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:8px 10px;background:var(--neutral-light,#F6F4F1);border-radius:8px;}
  .buyer-code-row strong{display:block;color:var(--primary);font-size:.76rem;letter-spacing:.025em;}
  .buyer-code-row span{display:block;margin-top:2px;color:var(--text-muted);font-size:.8rem;line-height:1.3;}
.buyer-code-row small{flex:0 0 auto;padding-top:2px;color:var(--primary);font-size:.76rem;font-weight:700;}
.upphandling-information-title{margin:16px 0 0;color:var(--primary);font-size:1.25rem;}
.upphandling-information-card{margin-top:0;}
.upphandling-description-card p:last-child{margin-bottom:0;color:var(--text-muted);line-height:1.6;white-space:pre-line;}
  /* Inköpsbildens taggar följer varumärkespaletten, inte Bootstraps standardblå. */
  .buyer-insight-section .badge.bg-primary{background:var(--accent)!important;color:var(--primary);}
  .buyer-insight-section .list-group .badge.bg-primary{background:var(--primary)!important;color:#fff;}
  .buyer-insight-section .badge.bg-secondary{background:var(--neutral-dark,#E6E2DA)!important;color:var(--primary);}
  .buyer-outcomes-table-card,.buyer-active-card,.buyer-history-card{border-radius:var(--radius);overflow:hidden;}
  /* Tabell och "Visa alla" ska uppfattas som ett sammanhängande kort. */
  .buyer-outcomes-table-card .table,.buyer-active-card .table,.buyer-history-card .table{border-radius:0;}
  .buyer-active-card .dashboard-show-more,.buyer-history-card .dashboard-show-more{border-radius:0 0 var(--radius) var(--radius);}
  @media (max-width:991.98px){.buyer-profile-hero{grid-template-columns:1fr;}.buyer-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
  @media (max-width:575.98px){.buyer-kpi-grid{grid-template-columns:1fr;}.buyer-value-card{padding:20px;}.buyer-profile-hero{gap:16px;}}
.dashboard-active-buyers{margin-bottom:24px;background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow-sm);overflow:hidden;}.dashboard-active-buyers-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--border);}.dashboard-active-buyer{padding:18px 20px;background:#fff;color:var(--text);text-decoration:none;transition:var(--transition);}.dashboard-active-buyer:hover{background:#FAFAF8;color:var(--text);transform:translateX(4px);}.dashboard-active-buyer strong{display:block;color:var(--primary);}.dashboard-active-buyer span{display:block;margin-top:7px;color:var(--text-muted);font-size:.85rem;}.dashboard-active-buyer b{color:var(--accent);font-size:1.1rem;}
.dashboard-profile-tip{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:22px 24px;margin-bottom:24px;background:#F3F8F6;border:1px solid #DCEBE4;border-radius:14px;}.dashboard-profile-tip h2{margin:0;color:var(--primary);font-size:1.1rem;}.dashboard-profile-tip p:not(.dashboard-eyebrow){margin:6px 0 0;color:var(--text-muted);font-size:.9rem;}.dashboard-profile-tip p strong{color:var(--primary);}.dashboard-profile-tip .btn{white-space:nowrap;}
.dashboard-market-names{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px;font-size:.85rem;}.dashboard-market-names a{color:var(--primary);font-weight:600;text-decoration:none;}.dashboard-market-names a:hover{color:var(--accent);}.dashboard-market-names span{color:#A5B8AD;}
.bidder-privacy-note{display:flex;gap:13px;align-items:flex-start;padding:16px 18px;margin-bottom:20px;background:#F3F8F6;border:1px solid #DCEBE4;border-radius:12px;color:var(--primary);}.bidder-privacy-note>i{font-size:1.25rem;color:var(--accent);}.bidder-privacy-note strong,.bidder-privacy-note span{display:block;}.bidder-privacy-note span{margin-top:3px;color:var(--text-muted);font-size:.9rem;}.bidder-entry-card{padding:22px;margin-bottom:24px;}.bidder-entry-card .dashboard-section-header{margin-bottom:16px;}.bidder-entry-form{display:flex;gap:10px;align-items:flex-start;}.bidder-search-results{display:block;top:calc(100% + 4px);left:0;right:0;z-index:20;max-height:300px;overflow:auto;}.bidder-results{display:grid;gap:14px;}.bidder-result-card{padding:20px;background:#fff;border:1px solid var(--border);border-radius:12px;}.bidder-result-header{display:flex;gap:16px;align-items:flex-start;justify-content:space-between;margin-bottom:18px;}.bidder-result-header h2{margin:0 0 4px;font-size:1.15rem;}.bidder-result-header h2 a{color:var(--primary);text-decoration:none;}.bidder-result-header p{margin:0;color:var(--text-muted);font-size:.86rem;}.bidder-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--border);border-radius:9px;overflow:hidden;}.bidder-metrics>div{padding:14px 16px;border-right:1px solid var(--border);}.bidder-metrics>div:last-child{border-right:0;}.bidder-metrics span,.bidder-result-details>div>span{display:block;color:var(--text-muted);font-size:.75rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;}.bidder-metrics strong{display:block;margin-top:6px;color:var(--primary);font-size:1.25rem;}.bidder-metrics small{display:block;margin-top:3px;color:var(--text-muted);font-size:.75rem;}.bidder-result-details{display:grid;grid-template-columns:1.1fr 1fr 1fr;gap:16px;margin-top:16px;}.bidder-result-details strong{display:block;margin-top:6px;color:var(--primary);font-size:.88rem;line-height:1.45;}.bidder-source-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:7px;}.bidder-source-tags .badge{font-size:.72rem;}@media(max-width:700px){.bidder-entry-form,.bidder-result-header{flex-direction:column;}.bidder-entry-form .btn{width:100%;}.bidder-metrics,.bidder-result-details{grid-template-columns:1fr;}.bidder-metrics>div{border-right:0;border-bottom:1px solid var(--border);}.bidder-metrics>div:last-child{border-bottom:0;}}
.bidder-buyer-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px;}.bidder-buyer-list{margin-top:14px;border:1px solid var(--border);border-radius:9px;overflow:hidden;}.bidder-buyer-list.is-hidden{display:none;}.bidder-buyer-list>p{margin:0;padding:11px 14px;background:var(--neutral-light,#F6F4F1);color:var(--text-muted);font-size:.82rem;}.bidder-buyer-list .badge{margin-right:4px;font-size:.7rem;}
.bidder-risk-support{margin-top:22px;padding-top:20px;border-top:1px solid var(--border);}.bidder-risk-heading{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;}.bidder-risk-heading h3{margin:2px 0 5px;color:var(--primary);font-size:1.05rem;}.bidder-risk-heading p:not(.dashboard-eyebrow){margin:0;color:var(--text-muted);font-size:.86rem;}.bidder-risk-actions{display:flex;gap:8px;align-items:center;justify-content:flex-end;flex-wrap:wrap;}.bidder-risk-progress{flex:0 0 auto;padding:7px 10px;background:var(--neutral-light,#F6F4F1);border-radius:999px;color:var(--primary);font-size:.8rem;font-weight:700;}.bidder-risk-export-note{margin:10px 0 0;padding:9px 11px;background:#F3F8F6;border-left:3px solid var(--accent);color:var(--text-muted);font-size:.8rem;line-height:1.42;}.bidder-risk-links{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0;}.bidder-risk-links a{padding:7px 9px;background:#F3F8F6;border:1px solid #DCEBE4;border-radius:7px;color:var(--primary);font-size:.8rem;font-weight:600;text-decoration:none;}.bidder-risk-checks{display:grid;gap:9px;}.bidder-risk-check{display:grid;grid-template-columns:minmax(0,1fr) 150px;gap:10px 16px;padding:13px 14px;background:var(--neutral-light,#F6F4F1);border-radius:8px;}.bidder-risk-check strong,.bidder-risk-check span{display:block;}.bidder-risk-check strong{color:var(--primary);font-size:.88rem;}.bidder-risk-check span{margin-top:3px;color:var(--text-muted);font-size:.8rem;line-height:1.35;}.bidder-risk-check select{align-self:start;min-height:36px;border:1px solid var(--border);border-radius:6px;color:var(--primary);font-size:.84rem;}.bidder-risk-check textarea{grid-column:1/-1;min-height:58px;padding:8px 10px;border:1px solid var(--border);border-radius:6px;background:#fff;color:var(--text);font-size:.84rem;resize:vertical;}.bidder-risk-disclaimer{margin:13px 0 0;color:var(--text-muted);font-size:.78rem;line-height:1.4;}@media(max-width:700px){.bidder-risk-heading,.bidder-risk-check{grid-template-columns:1fr;flex-direction:column;}.bidder-risk-actions{justify-content:flex-start;}.bidder-risk-check select{width:100%;}.bidder-risk-progress{align-self:flex-start;}}
.bidder-risk-guide{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0 0 16px;}.bidder-risk-guide a{padding:11px 12px;background:#fff;border:1px solid var(--border);border-radius:8px;color:var(--primary);text-decoration:none;}.bidder-risk-guide a:hover{border-color:var(--accent);background:#F3F8F6;}.bidder-risk-guide strong,.bidder-risk-guide span{display:block;}.bidder-risk-guide strong{font-size:.84rem;}.bidder-risk-guide span{margin-top:3px;color:var(--text-muted);font-size:.77rem;line-height:1.35;}@media(max-width:700px){.bidder-risk-guide{grid-template-columns:1fr;}}
.bidder-risk-check a{display:inline-block;margin-top:7px;color:var(--primary);font-size:.78rem;font-weight:700;text-decoration:none;}.bidder-risk-check a:hover{text-decoration:underline;}
.bidder-risk-guidance{margin-top:11px;padding:10px 12px;background:#fff;border-left:3px solid var(--accent);color:var(--primary);font-size:.82rem;line-height:1.45;}.bidder-risk-guidance strong,.bidder-risk-guidance span{display:block;}.bidder-risk-guidance span{margin-top:3px;color:var(--text-muted);}
.bidder-risk-final-guidance{padding:14px 16px;background:#fff;border-left:3px solid var(--accent);border-radius:0 8px 8px 0;color:var(--primary);font-size:.84rem;line-height:1.5;}.bidder-risk-final-guidance strong{display:block;margin-bottom:6px;}.bidder-risk-final-guidance p{margin:0 0 9px;color:var(--text-muted);}.bidder-risk-final-guidance p:last-child{margin-bottom:0;}
.bidder-risk-registration{grid-template-columns:1fr;align-items:start;}.bidder-risk-questions{display:grid;width:100%;gap:7px;margin-top:4px;}.bidder-risk-questions label{display:grid;grid-template-columns:minmax(0,1fr) 160px;gap:14px;align-items:center;padding:9px 10px;background:#fff;border:1px solid var(--border);border-radius:6px;color:var(--primary);font-size:.82rem;font-weight:700;}.bidder-risk-questions select{width:100%;}@media(max-width:700px){.bidder-risk-questions label{grid-template-columns:1fr;gap:6px;}}
.bidder-risk-indicators{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:10px;}.bidder-risk-indicators label{display:flex;gap:8px;align-items:center;padding:9px 10px;background:#fff;border:1px solid var(--border);border-radius:6px;color:var(--primary);font-size:.82rem;line-height:1.3;transition:background .15s ease,border-color .15s ease,color .15s ease;}.bidder-risk-indicators label:has(input:checked){background:#FBE4E6;border-color:#E5B5BD;color:#A33042;}.bidder-risk-indicators input{appearance:none!important;width:17px;height:17px;margin:0;border:1px solid #A33042!important;border-radius:4px;background:#fff!important;flex:0 0 auto;cursor:pointer;}.bidder-risk-indicators input:checked{background-color:#A33042!important;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 4L12 12M12 4L4 12' stroke='white' stroke-width='2.3' stroke-linecap='round'/%3E%3C/svg%3E")!important;background-position:center!important;background-repeat:no-repeat!important;background-size:13px 13px!important;}@media(max-width:700px){.bidder-risk-indicators{grid-template-columns:1fr;}}
.bidder-risk-capacity{grid-template-columns:1fr;align-items:start;}.bidder-capacity-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-top:4px;}.bidder-capacity-fields label{display:grid;gap:5px;color:var(--primary);font-size:.78rem;font-weight:700;}.bidder-capacity-fields input,.bidder-capacity-fields select{width:100%;min-height:36px;padding:6px 8px;border:1px solid var(--border);border-radius:6px;background:#fff;color:var(--primary);font-size:.85rem;}.bidder-capacity-result{display:grid;gap:0;margin-top:11px;background:#F3F8F6;border:1px solid #DCEBE4;border-radius:7px;color:var(--primary);font-size:.83rem;line-height:1.45;overflow:hidden;}.bidder-capacity-result:empty{display:block;padding:10px 12px;}.bidder-capacity-result>div{display:flex;justify-content:space-between;gap:16px;padding:9px 12px;border-bottom:1px solid #DCEBE4;}.bidder-capacity-result>div:last-child{border-bottom:0;}.bidder-capacity-result span{color:var(--text-muted);}.bidder-capacity-result strong{white-space:nowrap;}.bidder-risk-capacity textarea{width:100%;min-height:58px;margin-top:10px;padding:8px 10px;border:1px solid var(--border);border-radius:6px;background:#fff;color:var(--text);font-size:.84rem;resize:vertical;}@media(max-width:700px){.bidder-capacity-fields{grid-template-columns:1fr;}.bidder-capacity-result>div{align-items:flex-start;flex-direction:column;gap:2px;}}
.candidate-card{margin-bottom:24px;}.candidate-actions{display:flex;gap:8px;align-items:center;}.candidate-activity-heading{padding:13px 24px;background:#F6F8FA;border-bottom:1px solid var(--border);color:var(--primary);font-size:.85rem;font-weight:700;}
.inkops-market{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin:34px 0 24px;background:var(--surface);border:1px solid var(--border);border-radius:14px;overflow:hidden;box-shadow:var(--shadow-sm);}.inkops-market .dashboard-stat:last-child{border-right:0;}.inkops-data-note{margin:-8px 0 24px;color:var(--text-muted);font-size:.8rem;line-height:1.45;}
@media(max-width:1000px){.dashboard-market{grid-template-columns:repeat(2,1fr);}.dashboard-stat:nth-child(2){border-right:0;}.dashboard-stat:nth-child(-n+2){border-bottom:1px solid var(--border);}.dashboard-insight-row,.dashboard-tools-grid{grid-template-columns:1fr;}.dashboard-content{grid-template-columns:1fr;}}
@media(max-width:600px){.dashboard-hero,.dashboard-personal,.dashboard-section-header,.dashboard-profile-tip{align-items:flex-start;flex-direction:column;}.dashboard-market,.dashboard-active-buyers-list,.inkops-market{grid-template-columns:1fr;}.dashboard-stat,.dashboard-stat:nth-child(2){border-right:0;border-bottom:1px solid var(--border);}.dashboard-stat:last-child{border-bottom:0;}.candidate-actions{width:100%;flex-wrap:wrap;}}

.profile-summary{
    min-width:0;
}

.profile-choice-page{max-width:900px;padding-top:28px;}.profile-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:30px;}.profile-choice-card{padding:28px;background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow-sm);color:var(--text);text-decoration:none;transition:var(--transition);}.profile-choice-card:hover{color:var(--text);transform:translateY(-3px);box-shadow:var(--shadow);}.profile-choice-icon{display:flex;align-items:center;justify-content:center;width:46px;height:46px;margin-bottom:20px;background:#F3F8F6;border-radius:12px;color:var(--accent);font-size:1.35rem;}.profile-choice-card h2{margin:0;color:var(--primary);font-size:1.2rem;}.profile-choice-card p{margin:9px 0 20px;color:var(--text-muted);line-height:1.55;}.profile-choice-card span{color:var(--primary);font-size:.9rem;font-weight:700;}.profile-choice-card span i{margin-left:4px;}

.profile-summary-title{
    margin:40px 0 14px;
    color:var(--primary);
    font-size:1.15rem;
    font-weight:700;
}

.profile-summary-panel{
    padding:24px;
    background:var(--surface);
    border:1px solid var(--border);
    border-radius:14px;
    box-shadow:var(--shadow-sm);
}

.profile-summary-section + .profile-summary-section{
    margin-top:24px;
    padding-top:24px;
    border-top:1px solid var(--border);
}

.profile-summary-section-title{
    margin:0 0 14px;
    color:var(--primary);
    font-size:1rem;
    font-weight:700;
}

.profile-summary .progress{
    height:9px;
    margin-bottom:8px;
}

.profile-summary-kpis{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:10px;
}

.profile-summary .kpi-card{
    min-height:104px;
    padding:14px 8px;
    background:#F6F8FA;
    border:1px solid var(--border);
    border-radius:10px;
}

.profile-summary .kpi-title{
    margin-bottom:7px;
    font-size:.68rem;
    line-height:1.25;
}

.profile-summary-recommendation{
    padding:16px;
    background:#F3F8F6;
    border:0;
    border-radius:10px;
}

.profile-summary-recommendation .page-description{
    margin:0;
    font-size:.9rem;
    line-height:1.55;
}

@media (max-width:1000px){
    .profile-summary-title{
        margin-top:0;
    }
}

@media (max-width:480px){
    .profile-summary-panel{
        padding:18px;
    }

    .profile-summary-kpis{
        grid-template-columns:1fr;
    }
}

/* Mobil: profilvyerna ska aldrig behålla desktopens två kolumner. */
@media (max-width:1000px){
    .affarsprofil-layout{
        grid-template-columns:1fr;
    }
}

@media (max-width:600px){
    .page-description{
        font-size:.95rem;
        line-height:1.55;
    }

    .card-header{
        flex-wrap:wrap;
        gap:10px;
    }

    .card-header > .d-flex{
        width:100%;
    }

    .card-header > .d-flex .btn{
        flex:1 1 auto;
    }

    .table-responsive{
        width:100%;
        overflow-x:auto;
        -webkit-overflow-scrolling:touch;
        border:1px solid var(--border);
        border-radius:10px;
    }

    .table-responsive > .table{
        min-width:600px;
        margin-bottom:0;
    }

    .mobile-table-scroll{
        margin-top:4px;
    }

    .dashboard-hero > .btn,
    .dashboard-personal > .btn,
    .dashboard-profile-tip > .btn{
        width:100%;
    }

    .dashboard-hero{
        margin-bottom:24px;
    }

    .dashboard-hero + .dashboard-insight-row{
        margin-top:0;
    }

    .dashboard-section-header{
        padding:18px;
    }

    .dashboard-match-row{
        align-items:flex-start;
        flex-direction:column;
        gap:8px;
        padding:16px 18px;
    }

    .dashboard-match-meta{
        text-align:left;
    }

    .dashboard-tool-card{
        padding:18px;
    }

    .table-pagination{
        gap:10px;
        align-items:center;
        flex-wrap:wrap;
    }

    .table-pagination .btn{
        flex:1 1 130px;
    }

    .table-pagination span{
        width:100%;
        order:-1;
        text-align:center;
    }

    .table-responsive:has(.mobile-stacked-table){
        overflow:visible;
        border:0;
        border-radius:0;
    }

    .table-responsive > .table.mobile-stacked-table{
        min-width:0;
    }

    .mobile-stacked-table thead{
        display:none;
    }

    .mobile-stacked-table,
    .mobile-stacked-table tbody,
    .mobile-stacked-table tr,
    .mobile-stacked-table td{
        display:block;
        width:100%;
    }

    .mobile-stacked-table tbody tr{
        box-sizing:border-box;
        padding:11px 12px;
        border-bottom:1px solid var(--border);
    }

    .mobile-stacked-table tbody tr:last-child{
        border-bottom:0;
    }

    .mobile-stacked-table td{
        display:grid;
        grid-template-columns:96px minmax(0,1fr);
        align-items:start;
        gap:10px;
        padding:7px 0;
        border:0;
        text-align:left !important;
        overflow:hidden;
    }

    .mobile-stacked-table td::before{
        content:attr(data-label);
        color:var(--text-muted);
        font-size:.75rem;
        font-weight:700;
        text-transform:uppercase;
        letter-spacing:.03em;
    }

    .mobile-stacked-table td > *{
        min-width:0;
        overflow-wrap:anywhere;
        word-break:break-word;
    }

    .mobile-stacked-table td:not(:has(> *)){
        overflow-wrap:anywhere;
        word-break:break-word;
    }

    .mobile-stacked-table td a{
        display:block;
        max-width:100%;
    }

    .mobile-stacked-table .source-tag{
        width:max-content;
        margin:0;
    }

    .profile-expand-list.is-expanded tr.is-hidden{
        display:block;
    }
}

.geo-tags{

    display:flex;

    flex-wrap:wrap;

    gap:10px;

}

.geo-tag{

    background:#eef4ff;

    color:#174ea6;

    padding:8px 14px;

    border-radius:20px;

    display:flex;

    align-items:center;

    gap:8px;

    font-size:.9rem;

    font-weight:500;

}

.geo-tag i{

    cursor:pointer;

}

.tag-list{

    display:flex;

    flex-wrap:wrap;

    gap:10px;

}

.tag-item{

    display:flex;

    align-items:center;

    gap:8px;

    padding:8px 14px;

    border-radius:20px;

    background:#f3f6fa;

    color:#0d3b66;

    font-size:.9rem;

    font-weight:500;

}

.tag-item i{

    cursor:pointer;

    opacity:.7;

}

.tag-item i:hover{

    opacity:1;

}

.geo-autocomplete,
.cpv-autocomplete,
.kopare-autocomplete,
.konkurrent-autocomplete{

    position:relative;

}

.geo-picker-options,
.cpv-picker-options,
.kopare-picker-options,
.konkurrent-picker-options{

    display:none;

    position:absolute;

    top:calc(100% + 6px);

    right:0;

    left:0;

    z-index:20;

    max-height:280px;

    overflow-y:auto;

    border:1px solid var(--border);

    border-radius:10px;

    background:var(--white);

    box-shadow:var(--shadow);

}

.geo-picker-options.is-open,
.cpv-picker-options.is-open,
.kopare-picker-options.is-open,
.konkurrent-picker-options.is-open{

    display:block;

}

.geo-picker-option,
.cpv-picker-option,
.kopare-picker-option,
.konkurrent-picker-option{

    display:block;

    width:100%;

    padding:9px 14px;

    border:0;

    background:transparent;

    color:var(--text);

    text-align:left;

    transition:var(--transition);

}

.geo-picker-option:hover,
.cpv-picker-option:hover,
.kopare-picker-option:hover,
.konkurrent-picker-option:hover{

    background:#F3F6FA;

}

.geo-picker-option--lan{

    font-weight:600;

    color:var(--primary);

    background:#F8F9FA;

}

.geo-picker-option--kommun{

    padding-left:34px;

    color:var(--text-muted);

}

.progress{

    height:10px;

    background:#E9ECEF;

    border-radius:999px;

    overflow:hidden;

}

.progress-bar{

    background:var(--primary);

    transition:width .4s ease;

}
