:root {
    --brand-purple: #884dff;
    --brand-purple-dark: #6e35dd;
    --brand-green: #8fea08;
    --brand-green-dark: #74c300;
    --bs-border-radius: 0;
    --bs-border-radius-sm: 0;
    --bs-border-radius-lg: 0;
    --bs-border-radius-xl: 0;
    --bs-border-radius-xxl: 0;
    --bs-border-radius-pill: 0;
    --bs-btn-border-radius: 0;
    --bs-btn-border-radius-sm: 0;
    --bs-btn-border-radius-lg: 0;
    --bs-card-border-radius: 0;
    --bs-alert-border-radius: 0;
    --bs-form-control-border-radius: 0;
    --bs-form-select-border-radius: 0;
    --surface: #ffffff;
    --surface-soft: #f6f8ff;
    --ink: #1f1f2c;
    --muted: #667085;
    --ring: rgba(95, 42, 165, 0.22);
}

body {
    font-family: 'Manrope', sans-serif;
    color: var(--ink);
    background: #f2f4f8;
    min-height: 100vh;
}

.app-shell {
    position: relative;
    z-index: 1;
}

.app-header {
    background: var(--brand-purple);
    border: 1px solid rgba(68, 28, 121, 0.35);
    border-left: 8px solid var(--brand-green);
    border-radius: 0;
    color: #fff;
    padding: 1.1rem 1.25rem;
    box-shadow: 0 10px 24px rgba(58, 37, 97, 0.2);
    margin-bottom: 1rem;
}

.app-header .text-secondary {
    color: rgba(255, 255, 255, 0.85) !important;
}

.card {
    border: 1px solid rgba(95, 42, 165, 0.12);
    border-radius: 0;
    background: #ffffff;
    box-shadow: 0 10px 24px rgba(31, 31, 44, 0.07);
}

.btn-primary {
    --bs-btn-bg: var(--brand-purple);
    --bs-btn-border-color: var(--brand-purple);
    --bs-btn-hover-bg: var(--brand-purple-dark);
    --bs-btn-hover-border-color: var(--brand-purple-dark);
    --bs-btn-active-bg: var(--brand-purple-dark);
    --bs-btn-active-border-color: var(--brand-purple-dark);
}

.btn-success {
    --bs-btn-bg: var(--brand-green);
    --bs-btn-border-color: var(--brand-green);
    --bs-btn-hover-bg: var(--brand-green-dark);
    --bs-btn-hover-border-color: var(--brand-green-dark);
    --bs-btn-active-bg: var(--brand-green-dark);
    --bs-btn-active-border-color: var(--brand-green-dark);
    --bs-btn-color: #102217;
    --bs-btn-hover-color: #fff;
}

.btn-outline-primary {
    --bs-btn-color: var(--brand-purple);
    --bs-btn-border-color: rgba(95, 42, 165, 0.5);
    --bs-btn-hover-bg: var(--brand-purple);
    --bs-btn-hover-border-color: var(--brand-purple);
}

.btn-outline-success {
    --bs-btn-color: var(--brand-green-dark);
    --bs-btn-border-color: rgba(83, 200, 108, 0.65);
    --bs-btn-hover-bg: var(--brand-green);
    --bs-btn-hover-border-color: var(--brand-green);
    --bs-btn-hover-color: #102217;
}

.form-control,
.form-select,
.select2-container--bootstrap-5 .select2-selection {
    border-color: rgba(95, 42, 165, 0.24);
    border-radius: 0;
    background-color: #fff;
}

.form-control:focus,
.form-select:focus,
.select2-container--bootstrap-5.select2-container--focus .select2-selection {
    border-color: var(--brand-purple);
    box-shadow: 0 0 0 .25rem var(--ring);
}

.select2-container--bootstrap-5 .select2-dropdown {
    border-color: rgba(95, 42, 165, 0.28);
    border-radius: 0;
    overflow: hidden;
}

.input-group > .select2-container {
    flex: 1 1 auto;
    width: 1% !important;
    min-width: 0;
}

.input-group-text {
    border-color: rgba(95, 42, 165, 0.24);
    background-color: #fff;
    color: #5a4b7a;
}

.table thead th {
    background: #ece7f6;
    color: #3e3257;
    font-weight: 700;
    border-bottom-width: 1px;
}

.alert {
    border: none;
    border-left: 4px solid var(--brand-green);
    border-radius: 0;
}

.toast-stack {
    z-index: 1080;
    width: min(92vw, 420px);
}

.toast {
    border-radius: 0;
    box-shadow: 0 10px 24px rgba(31, 31, 44, 0.2);
}

.btn i,
.datagrid a i {
    margin-right: 0.35rem;
}

.btn .fa-only,
.datagrid a .fa-only {
    margin-right: 0;
}

.datagrid th.col-action,
.datagrid td.col-action {
    min-width: 8.5rem;
    white-space: nowrap;
}

.datagrid td.col-action > a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    white-space: nowrap;
    margin-right: 0.35rem;
}

.datagrid td.col-action > a:last-child {
    margin-right: 0;
}

.datagrid .col-per-page .form-select {
    width: auto;
    min-width: 5.5rem;
    display: inline-block;
}

details > summary {
    list-style: none;
}

details > summary::-webkit-details-marker {
    display: none;
}

.quick-add-advanced > summary {
    margin-bottom: 0.5rem;
}

@media (min-width: 768px) {
    .quick-add-advanced > summary {
        display: none;
    }

    .quick-add-advanced:not([open]) > :not(summary) {
        display: block;
    }
}

@media (max-width: 767.98px) {
    .datagrid table {
        font-size: 0.9rem;
    }

    .datagrid table th,
    .datagrid table td {
        padding: 0.45rem 0.4rem;
        white-space: nowrap;
    }

    .datagrid th.col-issue_iid,
    .datagrid td.col-issue_iid,
    .datagrid th.col-note,
    .datagrid td.col-note {
        display: none;
    }

    .datagrid td.col-action > a {
        margin-right: 0.2rem;
        padding: 0.2rem 0.45rem;
    }

    .quick-add-mobile-btn {
        min-height: 2.8rem;
        font-size: 1rem;
        padding: 0.45rem 0.9rem;
    }

    .quick-add-actions .btn {
        min-height: 3rem;
        font-size: 1rem;
        width: 100%;
    }

    .quick-add-advanced > summary {
        min-height: 2.8rem;
        font-size: 0.95rem;
        display: flex;
        align-items: center;
        justify-content: center;
    }
}
