/*
|--------------------------------------------------------------------------
| TelecomX Manager
|--------------------------------------------------------------------------
| Version 0.3.0 - OMLAGT 2026-07-10 (Bo Markfoged): hele appens design
| bragt i overensstemmelse med "PowerNet Rapportgenerator" (teal/mørk
| skifer-palette, Aptos-typografi, runde 14px-kort med blød skygge i
| stedet for flade hairline-kort). Samme variabel- og klassenavne som før
| er bevaret uændret, så INGEN andre filer (fx statistics.php's egen
| <style>-blok, der bruger var(--border) osv.) skulle ændres for at arve
| det nye look - kun VÆRDIERNE og et par komponent-regler er skiftet her.
|
| Wallboard-visningen (wallboard_view.php) og Telefonirapport
| (telefonirapport.php) er BEVIDST uafhængige af denne fil (egne
| :root-paletter) - se docblok i hver fil. Telefonirapport matcher allerede
| denne palette 1:1 (samme kilde); Wallboard er kunde-konfigurerbar
| (farve/logo vælges pr. board) og skal IKKE tvinges over i app-designet
| (bekræftet med Bo Markfoged 2026-07-10).
|--------------------------------------------------------------------------
*/

:root{
    --ink-primary:#575555;
    --ink-secondary:#74797A;
    --ink-tertiary:#8A8A8A;
    --border:#D4DDDF;
    --accent:#84ADB6;
    --accent-solid:#84ADB6;
    --accent-solid-hover:#668E97;
    --accent-light:#EEF5F6;
    --bg-page:#EDEDEE;
    --card-bg:#ffffff;

    /* Ekstra tokens fra Rapportgeneratorens palette (NYE - ikke brugt af
       nogen anden fil endnu, men holdt tilgængelige for fremtidige sider). */
    --dark:#3A4A4E;
    --teal2:#84ADB6;
    --teal3:#9BBEC4;

    /* Bootstrap-variabler - overskriver standard-blå med teal-accenten */
    --bs-primary:var(--accent-solid);
    --bs-primary-rgb:132,173,182;
    --bs-link-color:var(--accent);
    --bs-link-color-rgb:132,173,182;
    --bs-link-hover-color:var(--accent-solid-hover);
    --bs-link-hover-color-rgb:102,142,151;
    --bs-body-font-family:'Aptos',-apple-system,'Segoe UI',Roboto,Arial,sans-serif;
}

/*
| Dark mode (TILFØJET 2026-07-11, Indstillinger - lys/dark mode-skifter).
| Overskriver KUN mine egne CSS-variabler ovenfor - alt andet i denne fil
| bruger allerede var(--ink-primary) osv., så det arver automatisk. Selve
| Bootstrap-komponenterne (kort, tabeller, formularer, alerts) styres i
| stedet af Bootstraps EGET indbyggede data-bs-theme="dark" (sat på <html> i
| header.php sammen med data-theme) - Bootstrap 5.3 har fuld dark mode-
| understøttelse indbygget, så de skal IKKE overskrives manuelt her.
*/
html[data-theme="dark"]{
    --ink-primary:#E8ECED;
    --ink-secondary:#AEB8BA;
    --ink-tertiary:#8A9396;
    --border:#3E4A4E;
    --accent:#8FBAC4;
    --accent-solid:#6F9BA5;
    --accent-solid-hover:#8FBAC4;
    --accent-light:#2A3B3F;
    --bg-page:#181E20;
    --card-bg:#22292C;

    --bs-primary:var(--accent-solid);
    --bs-link-color:var(--accent);
    --bs-link-hover-color:var(--accent-solid-hover);
}

/* Logo-billedet i sidebaren har hvid tekst tegnet ind i selve PNG'en -
   den er allerede læsbar på den teal sidebar-baggrund i begge temaer, så
   intet ekstra behøves her. */

body{
    background:var(--bg-page);
    font-family:'Aptos',-apple-system,'Segoe UI',Roboto,Arial,sans-serif;
    font-size:12px;
    color:var(--ink-primary);
    margin:0;
    transition:background-color .15s, color .15s;
}

h1,h2,h3,h4,h5,h6,
.page-title{
    font-size:30px;
    font-weight:600;
    letter-spacing:-0.01em;
    color:var(--ink-primary);
}

a{
    color:var(--accent);
}

a:hover{
    color:var(--accent-solid);
}

.navbar-brand{
    font-weight:700;
    letter-spacing:.5px;
}

/* ---------- kort: fra flade hairline-kort til runde kort med blød skygge
   (matcher Rapportgeneratorens .panel - border-radius:14px, box-shadow
   0 4px 18px rgba(0,0,0,.06), ingen kant) ---------- */
.card{
    border:none;
    border-radius:14px;
    box-shadow:0 4px 18px rgba(0,0,0,.06)!important;
}

html[data-theme="dark"] .card{
    box-shadow:0 4px 18px rgba(0,0,0,.35)!important;
}

.card-header{
    font-weight:600;
    background:var(--card-bg);
    border-bottom:1px solid var(--border);
    border-radius:14px 14px 0 0!important;
    color:var(--ink-primary);
}

.card-footer{
    background:var(--card-bg);
    border-top:1px solid var(--border);
    border-radius:0 0 14px 14px!important;
}

.shadow-sm,
.shadow{
    box-shadow:0 4px 18px rgba(0,0,0,.08)!important;
    border:none;
}

.list-group-item{
    border:none;
    border-bottom:1px solid var(--border);
    border-radius:0;
    color:var(--ink-primary);
}

.list-group-item.active{
    background:var(--accent-solid);
    border-color:var(--accent-solid);
}

.list-group-item:hover{
    background:var(--accent-light);
}

.list-group-item.active:hover{
    background:var(--accent-solid-hover);
}

.card.border-primary{ border-color:var(--accent-solid)!important; }
.card.border-success{ border-color:#0ca30c!important; }
.card.border-warning{ border-color:#c98500!important; }
.card.border-danger{ border-color:#d03b3b!important; }

.card.border-primary,
.card.border-success,
.card.border-warning,
.card.border-danger{
    border-width:1px!important;
}

.card h2{
    margin:0;
    font-size:2rem;
    font-weight:700;
    color:var(--ink-primary);
}

/* ---------- knapper og formularer ---------- */
.btn{
    border-radius:10px;
    font-weight:600;
}

.btn-primary{
    --bs-btn-bg:var(--accent-solid);
    --bs-btn-border-color:var(--accent-solid);
    --bs-btn-hover-bg:var(--accent-solid-hover);
    --bs-btn-hover-border-color:var(--accent-solid-hover);
    --bs-btn-active-bg:var(--accent-solid-hover);
    --bs-btn-active-border-color:var(--accent-solid-hover);
    --bs-btn-disabled-bg:var(--accent-solid);
    --bs-btn-disabled-border-color:var(--accent-solid);
    background-color:var(--accent-solid);
    border-color:var(--accent-solid);
}

.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active{
    background-color:var(--accent-solid-hover)!important;
    border-color:var(--accent-solid-hover)!important;
}

.btn-outline-primary{
    --bs-btn-color:var(--accent-solid);
    --bs-btn-border-color:var(--accent-solid);
    --bs-btn-hover-bg:var(--accent-solid);
    --bs-btn-hover-border-color:var(--accent-solid);
    color:var(--accent-solid);
    border-color:var(--accent-solid);
}

.btn-outline-secondary{
    --bs-btn-color:var(--ink-secondary);
    --bs-btn-border-color:var(--border);
    --bs-btn-hover-bg:var(--ink-primary);
    --bs-btn-hover-border-color:var(--ink-primary);
    color:var(--ink-secondary);
    border-color:var(--border);
}

.form-control,
.form-select{
    border-radius:8px;
    border-color:var(--border);
}

.form-control:focus,
.form-select:focus{
    border-color:var(--accent);
    box-shadow:0 0 0 .2rem rgba(101,152,163,.18);
}

.form-check-input:checked{
    background-color:var(--accent-solid);
    border-color:var(--accent-solid);
}

.form-switch .form-check-input:checked{
    background-color:var(--accent-solid);
    border-color:var(--accent-solid);
}

/* ---------- badges ---------- */
.badge.bg-primary,
.bg-primary{
    background-color:var(--accent-solid)!important;
}

.text-primary{
    color:var(--accent-solid)!important;
}

.border-primary{
    border-color:var(--accent-solid)!important;
}

footer{
    margin-top:40px;
    padding:20px;
    text-align:center;
    color:var(--ink-tertiary);
    font-size:13px;
}

.version{
    color:var(--ink-tertiary);
    font-size:12px;
}

.table td,
.table th{
    vertical-align:middle;
}

.table thead th{
    color:var(--ink-tertiary);
    font-size:12px;
    text-transform:uppercase;
    letter-spacing:.06em;
    font-weight:600;
    border-bottom:1px solid var(--border);
}

.badge-status{
    padding:6px 10px;
    border-radius:20px;
    font-size:12px;
}

.status-online{
    background:var(--accent-solid);
    color:#fff;
}

.status-offline{
    background:#d03b3b;
    color:#fff;
}

.dashboard-card{
    transition:.2s;
}

.dashboard-card:hover{
    transform:translateY(-2px);
    box-shadow:0 10px 24px -6px rgba(0,0,0,.14)!important;
}

.login-logo{
    font-size:32px;
    font-weight:700;
    color:var(--ink-primary);
    letter-spacing:.02em;
}

.login-box{
    margin-top:80px;
}

.page-title{
    font-size:24px;
    font-weight:600;
    color:var(--ink-primary);
}

/* ---------- sidebar ---------- */
.sidebar{
    position:fixed;
    left:0;
    top:0;
    width:240px;
    height:100vh;
    background:var(--accent-solid);
    color:#fff;
}

.logo{
    padding:25px;
    border-bottom:1px solid rgba(255,255,255,.15);
}

.logo-img{
    display:block;
    width:100%;
    height:auto;
}

.menu-item{
    display:flex;
    gap:12px;
    align-items:center;
    padding:16px 22px;
    color:#fff;
    text-decoration:none;
    transition:.2s;
    border-left:3px solid transparent;
    font-size:14px;
}

.menu-item:hover{
    background:rgba(255,255,255,.1);
}

.menu-item.active{
    background:rgba(0,0,0,.15);
    border-left:3px solid var(--accent-solid-hover);
    color:#fff;
}

.icon{
    width:26px;
    text-align:center;
}

/* "Kommer snart"-badge på endnu-ikke-byggede menupunkter (Rapporter,
   Wallboard) - TILFØJET 2026-07-04 (Runde 11), Bo Markfoged: "der må gerne
   være en indikation af, den ikke er i brug endnu, det samme med
   rapporter, den den heller ikke er lavet endnu." */
.menu-item .menu-badge{
    margin-left:auto;
    font-size:10px;
    font-weight:600;
    letter-spacing:.04em;
    text-transform:uppercase;
    background:rgba(255,255,255,.16);
    color:#fff;
    border:1px solid rgba(255,255,255,.25);
    border-radius:20px;
    padding:2px 8px;
    white-space:nowrap;
}

/* Foldbar "Superadmin"-gruppe i sidebar (TILFØJET 2026-07-08, ønske fra Bo
   Markfoged) - bygget med <details>/<summary>, så den folder uden JS. */
.menu-group summary{
    list-style:none;
    cursor:pointer;
}
.menu-group summary::-webkit-details-marker{ display:none; }
.menu-group summary::marker{ content:""; }
.menu-group-header{
    color:#E3F0F2;
    font-weight:600;
}
.menu-group .menu-caret{
    margin-left:auto;
    font-size:11px;
    color:#E3F0F2;
    transition:transform .2s;
}
.menu-group[open] .menu-caret{ transform:rotate(90deg); }
.menu-group a.menu-item{
    padding-left:44px;
    font-size:14px;
}

/* ---------- topbar ---------- */
.topbar{
    margin-left:240px;
    height:70px;
    background:var(--card-bg);
    border-bottom:1px solid var(--border);
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:0 30px;
    box-shadow:none;
}

.topbar h2,
.topbar h4{
    margin:0;
    font-size:19px;
    font-weight:600;
    color:var(--ink-primary);
}

.topbar-right{
    display:flex;
    gap:20px;
    align-items:center;
}

.role{
    background:var(--accent-solid);
    color:#fff;
    padding:4px 12px;
    border-radius:20px;
    font-size:11px;
    text-transform:uppercase;
    letter-spacing:.06em;
}

.customer-select{
    min-width:320px;
    padding:8px;
    border-radius:8px;
    border:1px solid var(--border);
}

.content{
    margin-left:240px;
    margin-top:70px;
    padding:30px;
}

@media (max-width:860px){
    .sidebar{ width:100%; height:auto; position:relative; }
    .topbar{ margin-left:0; }
    .content{ margin-left:0; }
}
