:root{
    --app-bg:#0f172a;
    --app-bg-secondary:#111c34;
    --app-surface:#16213c;
    --app-surface-alt:#1d2a4a;
    --app-border:#1f2a44;
    --app-text:#e2e8f0;
    --app-text-muted:#94a3b8;
    --app-primary:#4f46e5;
    --app-primary-soft:rgba(79,70,229,0.15);
    --app-success:#22c55e;
    --app-danger:#ef4444;
    --app-warning:#f59e0b;
    --app-info:#0ea5e9;
    --app-sidebar-width:270px;
    --app-sidebar-collapsed:80px;
    --app-card-radius:18px;
    --app-transition:all .25s ease-in-out;
    --font-family:"Inter", "Segoe UI", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
}

*{box-sizing:border-box;}

body{
    min-height:100vh;
    margin:0;
    font-family:var(--font-family);
    background:radial-gradient(circle at top,var(--app-bg-secondary) 0%,var(--app-bg) 45%,#060b1b 100%);
    color:var(--app-text);
    display:flex;
}

body.modal-open{padding-right:0 !important;}

a{color:inherit;}

a:hover{text-decoration:none;}

.app-wrapper{
    display:flex;
    width:100%;
    min-height:100vh;
    background:transparent;
}

.app-sidebar{
    width:var(--app-sidebar-width);
    background:linear-gradient(180deg,var(--app-surface) 0%,var(--app-bg-secondary) 100%);
    border-right:1px solid var(--app-border);
    padding:2rem 1.25rem;
    position:sticky;
    top:0;
    height:100vh;
    transition:var(--app-transition);
    z-index:1030;
    flex-shrink:0;
}


.app-sidebar.collapsed{
    width:var(--app-sidebar-collapsed);
    padding:2rem .75rem;
}

.app-sidebar.collapsed .sidebar-label{
    opacity:0;
    visibility:hidden;
    transform:translateY(10px);
}

.app-sidebar.collapsed .nav-link span{
    opacity:0;
    visibility:hidden;
    transform:translateX(-6px);
}

.app-sidebar.collapsed .sidebar-footer,
.app-sidebar.collapsed .app-logo h5{
    display:none;
}

.app-logo{
    display:flex;
    align-items:center;
    gap:.75rem;
    margin-bottom:2.5rem;
}

.app-logo .logo-mark{
    width:42px;
    height:42px;
    border-radius:14px;
    display:flex;
    align-items:center;
    justify-content:center;
    background:var(--app-primary);
    color:#fff;
    font-weight:700;
    letter-spacing:.5px;
}

.app-logo h5{
    margin:0;
    font-weight:600;
    font-size:1.125rem;
}

.app-sidebar nav{
    display:flex;
    flex-direction:column;
    gap:.35rem;
}

.app-sidebar .nav-section{
    margin-top:1.75rem;
}

.sidebar-label{
    font-size:.75rem;
    letter-spacing:.08em;
    text-transform:uppercase;
    color:var(--app-text-muted);
    margin-bottom:.75rem;
    transition:var(--app-transition);
}

.app-sidebar .nav-link{
    display:flex;
    align-items:center;
    gap:.75rem;
    padding:.75rem 1rem;
    border-radius:14px;
    color:var(--app-text-muted);
    font-weight:500;
    transition:var(--app-transition);
}

.app-sidebar .nav-link i{
    font-size:1.1rem;
    width:1.5rem;
    display:flex;
    justify-content:center;
}

.app-sidebar .nav-link.active,
.app-sidebar .nav-link:hover{
    color:#fff;
    background:var(--app-primary-soft);
}

.app-sidebar .nav-link.active i{
    color:var(--app-primary);
}

.app-sidebar .sidebar-footer{
    margin-top:auto;
    padding-top:2rem;
    font-size:.85rem;
    color:var(--app-text-muted);
}

.app-main{
    flex:1;
    display:flex;
    flex-direction:column;
    background:linear-gradient(135deg,var(--app-bg-secondary) 0%,rgba(15,23,42,0.85) 40%,rgba(6,11,27,0.9) 100%);
}

.app-header{
    padding:1.25rem 1.75rem 0 1.75rem;
}

.app-toolbar{
    border-radius:20px;
    background:rgba(15,16,41,0.8);
    border:1px solid rgba(255,255,255,0.05);
    box-shadow:0 30px 60px rgba(15,23,42,0.35);
    backdrop-filter:blur(16px);
    padding:1rem 1.5rem;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:1rem;
    width:100%;
    max-width:1280px;
    margin:0 auto;
}

.toolbar-left{
    display:flex;
    align-items:center;
    gap:1rem;
}

.sidebar-toggle{
    width:38px;
    height:38px;
    border-radius:12px;
    border:1px solid rgba(255,255,255,0.08);
    background:rgba(79,70,229,0.12);
    color:var(--app-primary);
    display:inline-flex;
    align-items:center;
    justify-content:center;
    transition:var(--app-transition);
}

.sidebar-toggle:hover{
    background:rgba(79,70,229,0.22);
    color:#fff;
}

.breadcrumb-text{
    color:var(--app-text-muted);
    font-size:.9rem;
}

.toolbar-right{
    display:flex;
    align-items:center;
    gap:1rem;
}

.user-chip{
    display:flex;
    align-items:center;
    gap:.75rem;
    padding:.55rem .85rem;
    border-radius:14px;
    background:rgba(148,163,184,0.12);
    border:1px solid rgba(255,255,255,0.08);
    color:var(--app-text);
}

.user-chip .avatar{
    width:36px;
    height:36px;
    border-radius:12px;
    background:var(--app-primary);
    display:flex;
    align-items:center;
    justify-content:center;
    font-weight:600;
}

.app-content{
    flex:1;
    padding:2rem 1.75rem 2.5rem;
    width:100%;
    max-width:1280px;
    margin:0 auto;
}

.app-content .page-heading{
    margin-bottom:1.75rem;
}

.card{
    border:none;
    border-radius:var(--app-card-radius);
    background:rgba(15,16,41,0.9);
    border:1px solid rgba(255,255,255,0.05);
    box-shadow:0 22px 45px rgba(8,12,34,0.55);
}

.control-card{
    background:linear-gradient(135deg,rgba(29,32,68,0.95),rgba(17,23,49,0.85));
    border:1px solid rgba(79,70,229,0.35);
    box-shadow:0 24px 60px rgba(10,12,30,0.55);
}

.selection-summary-panel{
    flex:1 1 260px;
    border-radius:18px;
    padding:1.25rem 1.5rem;
    background:radial-gradient(circle at top,rgba(96,165,250,0.15) 0%,rgba(79,70,229,0.12) 55%,rgba(59,130,246,0.08) 100%);
    border:1px solid rgba(99,102,241,0.35);
    align-self:stretch;
}

.selection-summary-panel .summary-label{
    font-size:.72rem;
    letter-spacing:.08em;
    color:var(--app-text-muted);
}

.selection-summary-panel .summary-value{
    font-size:1.65rem;
    font-weight:600;
    color:#fff;
}

.selection-summary-panel .summary-subtitle{
    font-size:.72rem;
    text-transform:uppercase;
    letter-spacing:.08em;
}

.filter-card{
    background:rgba(17,24,48,0.9);
    border:1px solid rgba(148,163,184,0.18);
}

.time-tabs .nav-link{
    margin-right:.75rem;
    padding:.65rem 1.35rem;
    border-radius:14px;
    background:rgba(148,163,184,0.12);
    color:var(--app-text-muted);
    border:none;
    transition:var(--app-transition);
}

.time-tabs .nav-link.active{
    background:rgba(79,70,229,0.22);
    color:#fff;
    border-bottom:2px solid rgba(99,102,241,0.6);
}

.table-card{
    background:rgba(15,16,41,0.85);
    border:1px solid rgba(148,163,184,0.12);
}

.table-card .card-body{padding:0;}

.table-card .table thead{
    background:rgba(21,27,51,0.85);
}

.table-card .table thead th{
    border-bottom:none;
    color:var(--app-text-muted);
}

.table-card .table tbody tr{
    border-bottom:1px solid rgba(148,163,184,0.12);
}

.table-card .table tbody tr:last-child{
    border-bottom:none;
}

.card-header{
    border-bottom:1px solid rgba(255,255,255,0.05);
    padding:1.25rem 1.5rem;
    background:transparent;
}

.card-body{padding:1.5rem;}

.table{
    color:var(--app-text);
    margin-bottom:0;
}

.table thead{color:var(--app-text-muted);}

.table tbody tr{
    transition:var(--app-transition);
}

.table tbody tr:hover{
    background:rgba(148,163,184,0.08);
}

.table>:not(caption)>*>*{
    background:transparent;
    border-bottom:1px solid rgba(148,163,184,0.12);
}

.badge{
    padding:.45rem .65rem;
    border-radius:.75rem;
    text-transform:uppercase;
    letter-spacing:.05em;
    font-weight:600;
    font-size:.62rem;
}

.btn{
    border-radius:12px;
    font-weight:500;
    letter-spacing:.01em;
}

.btn.btn-outline-secondary,.btn.btn-outline-primary,.btn.btn-outline-success,.btn.btn-outline-danger,.btn.btn-outline-warning,.btn.btn-outline-info{
    border-width:1px;
}

.form-control,.form-select{
    border-radius:14px;
    background:rgba(15,20,40,0.85);
    border:1px solid rgba(148,163,184,0.18);
    color:var(--app-text);
}

.form-control:focus,.form-select:focus{
    border-color:rgba(79,70,229,0.7);
    background:rgba(15,20,40,0.95);
    box-shadow:0 0 0 .25rem rgba(79,70,229,0.25);
}

.nav-tabs{
    border-bottom:1px solid rgba(148,163,184,0.18);
}

.nav-tabs .nav-link{
    border:none;
    border-radius:12px 12px 0 0;
    color:var(--app-text-muted);
}

.nav-tabs .nav-link.active{
    background:rgba(79,70,229,0.15);
    color:#fff;
}

.toast{border-radius:14px;}

.alert{
    border-radius:14px;
    border:none;
    padding:1rem 1.25rem;
}

.table thead th{font-size:.75rem;letter-spacing:.06em;text-transform:uppercase;}

.stat-tile{
    position:relative;
    overflow:hidden;
    background:linear-gradient(135deg,rgba(79,70,229,0.85),rgba(129,140,248,0.2));
    border:1px solid rgba(99,102,241,0.35);
}

.stat-tile .icon-wrap{
    position:absolute;
    top:50%;
    right:-20px;
    transform:translateY(-50%);
    font-size:5rem;
    opacity:.18;
    color:#fff;
}

.stat-tile .value{
    font-size:2.35rem;
    font-weight:700;
}

.table-dark{--bs-table-bg:transparent;--bs-table-striped-bg:rgba(148,163,184,0.06);--bs-table-striped-color:var(--app-text);--bs-table-hover-bg:rgba(79,70,229,0.08);--bs-table-hover-color:var(--app-text);}

@media (max-width:991.98px){
    .app-sidebar{
        position:fixed;
        transform:translateX(-105%);
        box-shadow:0 20px 60px rgba(6,11,27,0.65);
        height:100vh;
        width:260px;
    }
    .app-sidebar.active{
        transform:translateX(0);
    }
    .app-main{
        padding-left:0;
    }
    .app-header{
        padding:1rem 1.25rem 0;
    }
    .app-content{
        padding:1.25rem 1.25rem 2rem;
    }
    .control-card .d-flex.flex-column.flex-xl-row{
        align-items:flex-start !important;
    }
}

@media (max-width:1199.98px){
    .selection-summary-panel{
        flex:1 1 100%;
    }
}

@media (max-width:575.98px){
    .toolbar-right{display:none;}
}

.modal-content{background:rgba(15,16,41,0.92);border:1px solid rgba(255,255,255,0.08);backdrop-filter:blur(10px);}

.modal-header{border-bottom:1px solid rgba(255,255,255,0.05);}

.modal-footer{border-top:1px solid rgba(255,255,255,0.05);}

.list-group-item{background:transparent;color:var(--app-text);border-color:rgba(148,163,184,0.18);}

.badge.bg-soft-info{background:rgba(14,165,233,0.2);color:#38bdf8;}
.badge.bg-soft-success{background:rgba(34,197,94,0.2);color:#4ade80;}
.badge.bg-soft-warning{background:rgba(245,158,11,0.2);color:#fbbf24;}
.badge.bg-soft-danger{background:rgba(239,68,68,0.2);color:#f87171;}
.badge.bg-soft-neutral{background:rgba(148,163,184,0.2);color:#e2e8f0;}

.btn-outline-info,.btn-outline-success,.btn-outline-warning{
    border-color:rgba(148,163,184,0.25);
    color:var(--app-text);
}

.btn-outline-info:hover,.btn-outline-success:hover,.btn-outline-warning:hover{
    color:#fff;
}

.app-footer{
    padding:1rem 1.75rem 1.5rem;
    color:var(--app-text-muted);
    font-size:.85rem;
    width:100%;
    max-width:1280px;
    margin:0 auto;
}

.table thead th:first-child,.table tbody td:first-child{
    padding-left:1.25rem;
}

.table thead th:last-child,.table tbody td:last-child{
    padding-right:1.25rem;
}

.offcanvas{background:rgba(15,16,41,0.98);}


.table tbody tr.ai-generated,
tr.ai-generated {
    background-color: rgba(34, 197, 94, 0.12) !important;
}

.table tbody tr.needs-manual,
tr.needs-manual {
    background-color: rgba(245, 158, 11, 0.12) !important;
}

.table-hover tbody tr.ai-generated:hover,
.table-hover tbody tr.needs-manual:hover,
tr.ai-generated:hover,
tr.needs-manual:hover {
    background-color: rgba(148, 163, 184, 0.18) !important;
}

.page-section{
    display:flex;
    flex-direction:column;
    gap:1.75rem;
}

@media (max-width:1199.98px){
    .selection-summary-panel{
        flex:1 1 100%;
    }
}

@media (max-width:991.98px){
    .control-card .d-flex.flex-column.flex-xl-row{
        align-items:flex-start !important;
    }
}
