:root {
    --app-primary: #1abb9c;
    --app-primary-dark: #15967d;
    --app-primary-soft: #e8f8f5;
    --app-ink: #2f4052;
    --app-secondary: #506a85;
    --app-muted: #73879c;
    --app-bg: #f5f7fa;
}

html { min-height: 100%; }
body {
    min-height: 100vh;
    background:
        radial-gradient(circle at 8% 8%, rgba(26, 187, 156, .10), transparent 28rem),
        radial-gradient(circle at 92% 20%, rgba(80, 106, 133, .09), transparent 25rem),
        var(--app-bg);
    color: var(--app-ink);
    display: flex;
    flex-direction: column;
}
main { flex: 1; }
.app-navbar { background: linear-gradient(110deg, #2f4052 0%, #405a72 55%, #506a85 100%); box-shadow: 0 10px 30px rgba(47, 64, 82, .18); }
.brand-mark { width: 2rem; height: 2rem; border-radius: .65rem; display: inline-grid; place-items: center; background: rgba(255,255,255,.17); }
.user-pill { color: rgba(255,255,255,.82) !important; padding: .35rem .75rem; border: 1px solid rgba(255,255,255,.18); border-radius: 999px; }
.app-card { border: 0; border-radius: 1.15rem; box-shadow: 0 12px 35px rgba(47, 64, 82, .08); }
.app-card .card-header { background: transparent; border-bottom: 1px solid #edf0f6; padding: 1.15rem 1.35rem; }
.auth-shell { max-width: 980px; margin: 0 auto; overflow: hidden; }
.auth-aside { background: linear-gradient(150deg, #2f4052 0%, #506a85 58%, #1abb9c 125%); color: white; min-height: 100%; }
.auth-icon { width: 4rem; height: 4rem; display: grid; place-items: center; border-radius: 1.25rem; font-size: 1.8rem; background: rgba(255,255,255,.14); }
.form-control, .form-select { border-color: #dfe3ec; padding: .72rem .9rem; }
.form-control:focus, .form-select:focus { border-color: #1abb9c; box-shadow: 0 0 0 .2rem rgba(26,187,156,.14); }
.btn-primary { background: var(--app-primary); border-color: var(--app-primary); }
.btn-primary:hover { background: var(--app-primary-dark); border-color: var(--app-primary-dark); }
.btn-outline-primary {
    --bs-btn-color: #15967d;
    --bs-btn-border-color: #1abb9c;
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: #1abb9c;
    --bs-btn-hover-border-color: #1abb9c;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: #15967d;
    --bs-btn-active-border-color: #15967d;
}
a { color: #168c76; }
a:hover { color: #11725f; }
.text-primary { color: #168c76 !important; }
.bg-primary-subtle { background-color: #e8f8f5 !important; }
.form-check-input:checked { background-color: #1abb9c; border-color: #1abb9c; }
.dropdown-item:active { background-color: #1abb9c; }
.page-heading { letter-spacing: -.025em; }
.stat-card { position: relative; overflow: hidden; }
.stat-icon { width: 3rem; height: 3rem; display: grid; place-items: center; border-radius: 1rem; font-size: 1.3rem; }
.file-icon { width: 3.25rem; height: 3.25rem; flex: 0 0 auto; display: grid; place-items: center; border-radius: 1rem; color: #168c76; background: #e8f8f5; font-size: 1.4rem; }
.badge-soft-primary { background: #e8f8f5; color: #168c76; }
.badge-soft-success { background: #e7f7f2; color: #137b68; }
.badge-soft-warning { background: #fffbeb; color: #b45309; }
.badge-soft-danger { background: #fef2f2; color: #b91c1c; }
.table > :not(caption) > * > * { padding: .85rem .75rem; vertical-align: middle; }
.table thead th { color: var(--app-muted); font-size: .75rem; text-transform: uppercase; letter-spacing: .05em; border-bottom-width: 1px; }
.empty-state { padding: 4rem 1rem; text-align: center; color: var(--app-muted); }
.empty-state i { font-size: 3rem; color: #8fdcce; }
.app-footer { border-top: 1px solid rgba(148,163,184,.22); background: rgba(255,255,255,.45); }
.modal-content { border: 0; border-radius: 1.15rem; box-shadow: 0 25px 70px rgba(47,64,82,.22); }
.action-inline { display: inline; }
@media (max-width: 767.98px) { .auth-aside { min-height: auto; } .table-responsive { border-radius: .75rem; } }
