﻿:root {
    --primary: #0a1f33; /* mørkeblå */
    --background: #f8f9fa;
    --sidebar-bg: #fff;
    --sidebar-border: #eaeaea;
    --text-dark: var(--primary);
    --text-gray: #7B7B7B;
}

/* Base */
html {
    box-sizing: border-box
}

*, *:before, *:after {
    box-sizing: inherit
}

body {
    margin: 0;
    background: var(--background);
    font-family: 'Inter','Segoe UI',Arial,sans-serif;
    color: var(--text-dark);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale
}
/* Offcanvas skal ligne din sidebar */
.sidebar.offcanvas, .sidebar.offcanvas-lg {
    width: 260px;
    background: #fff;
    border-right: 1px solid var(--sidebar-border);
    box-shadow: 2px 0 16px rgba(0,0,0,.06);
}

@media (min-width:992px) {
    .sidebar.offcanvas-lg {
        position: static;
        transform: none !important;
        visibility: visible !important;
    }

    .offcanvas-backdrop {
        display: none !important;
    }
}

/* Giv plads til burger-knappen på mobil */
@media (max-width: 991.98px) {
    .main-content {
        padding-top: 64px;
    }
}

.logo {
    display: block;
    padding: 16px 16px 8px 16px;
}

.logo-img {
    display: block;
    max-width: 180px;
    height: auto;
}

.burger-btn{position:fixed;top:.75rem;left:.75rem;z-index:1061;width:40px;height:40px;border:0;border-radius:10px;background:rgba(10,31,51,.06)}
.burger-btn:hover{background:rgba(10,31,51,.1)}



:focus-visible {
    outline: 2px solid var(--primary);
    outline-offset: 2px
}

/* Layout */
.app-container {
    display: flex;
    min-height: 100vh
}

.sidebar {
    min-width: 260px;
    max-width: 260px;
    background: var(--sidebar-bg);
    border-right: 1px solid var(--sidebar-border);
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 2.5rem 1.2rem 1.2rem;
    box-shadow: 2px 0 16px rgba(10,31,51,0.05)
}

.main-content {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2rem;
    padding: 3rem 4vw 2rem
}

footer {
    margin-top: 0
}

.logo {
    display: block;
    margin-bottom: 2rem
}

/* Menu */
.menu {
    width: 100%
}

.menu-section {
    margin-bottom: 2.1rem;
    width: 100%
}

    .menu-section + .menu-section {
        border-top: 1px solid #ececec;
        padding-top: 1.3rem
    }

.menu-section-title {
    font-size: 1rem;
    font-weight: 700;
    color: var(--primary);
    margin: 0 0 1rem 10px;
    text-transform: uppercase;
    letter-spacing: .08em
}

.menu-item {
    display: flex;
    align-items: center;
    gap: 13px;
    color: var(--text-gray);
    padding: 13px 20px;
    border-radius: .8rem;
    margin-bottom: 6px;
    font-weight: 500;
    font-size: 1.08rem;
    transition: background .15s,color .15s;
    text-decoration: none;
    background: none;
    border: none;
    width: 100%
}

    .menu-item i {
        font-size: 1.18rem;
        color: var(--primary) !important;
        min-width: 22px
    }

    .menu-item.active, .menu-item:hover, .menu-item:focus {
        background: var(--primary);
        color: #fff !important;
        text-decoration: none;
        font-weight: 600
    }

/* Cards / forms */
.form-card {
    background: #fff;
    border-radius: 1.5rem;
    box-shadow: 0 6px 32px rgba(10,31,51,0.08);
    padding: 2.5rem 2rem;
    margin: 2.5rem auto;
    max-width: 800px;
    width: 100%
}

.section-header {
    font-size: 1.19rem;
    font-weight: 700;
    color: var(--primary);
    margin: 2.3rem 0 1rem;
    border-bottom: 2px solid var(--primary);
    padding-bottom: .4rem;
    letter-spacing: .02em
}

.form-section-title {
    font-size: 1.22rem;
    font-weight: 600;
    color: var(--primary);
    margin: .2rem 0 0.4rem
}

.form-section-divider {
    border: none;
    border-top: 2px solid var(--primary);
    opacity: .25;
    margin: .2rem 0 1.3rem;
    width: 100%
}

.form-label {
    font-weight: 500;
    color: var(--primary)
}

.form-control, .form-select {
    border-radius: .8rem;
    border: 1.5px solid #e2e8f0;
    background: #f8f9fa;
    transition: border .18s,box-shadow .18s;
    font-size: 1rem
}

    .form-control:focus, .form-select:focus {
        border-color: var(--primary);
        background: #fff;
        box-shadow: 0 0 0 .15rem rgba(10,31,51,.07)
    }

.invalid-feedback {
    font-size: .95rem
}

.form-check-label {
    font-size: 1.02rem
}

.img-thumbnail {
    border-radius: 8px
}

.modal-content {
    border-radius: 1.5rem
}

/* Buttons */
.btn-primary {
    background: var(--primary);
    border: none;
    border-radius: .7rem;
    font-weight: 600;
    font-size: 1.09rem;
    padding: .72rem 2.3rem;
    margin-top: 1.3rem;
    transition: background .2s,color .2s
}

    .btn-primary:hover {
        background: #071627;
        color: #fff
    }

/* Profile image */
.profile-picture {
    width: 160px;
    height: 160px;
    border-radius: 50%;
    object-fit: cover;
    border: 3px solid var(--primary);
    transition: transform .3s
}

    .profile-picture:hover {
        transform: scale(1.05)
    }

.picture-upload {
    display: inline-block;
    margin-bottom: 1rem
}

/* AI card */
.card-ai-profil {
    transition: box-shadow .2s,border-color .2s;
    border-radius: 1rem
}

    .card-ai-profil:hover {
        box-shadow: 0 4px 24px rgba(10,31,51,0.18);
        border-color: var(--primary) !important
    }

/* Responsive */
@media (max-width:900px) {
    .sidebar {
        width: 88px;
        min-width: 88px;
        padding: 1.2rem .2rem
    }

    .menu-item {
        font-size: .96rem;
        padding: 9px 6px;
        justify-content: center
    }

    .logo img {
        width: 32px;
        height: 32px;
        margin-bottom: 1rem
    }

    .main-content {
        padding: 1.5rem 2vw
    }
}

/* Small devices */
@media (max-width:576px) {
    .form-card {
        margin: 1rem auto;
        padding: 1.25rem
    }

    .section-header {
        position: sticky;
        top: 0;
        background: #fff;
        z-index: 1
    }
}

/* Tom Select fine-tuning */
.ts-wrapper.multi .ts-control > div {
    background: rgba(10,31,51,.08);
    border: 1px dashed rgba(10,31,51,.2);
    color: var(--primary)
}
