:root { --sidebar-w: 248px; --brand: #0f766e; --brand-dark: #0b5953; }
body { background: #f4f6f8; font-size: .9rem; }
[data-bs-theme=dark] body { background: #12161a; }
.app-shell { display: flex; min-height: 100vh; }
.app-sidebar { width: var(--sidebar-w); flex: 0 0 var(--sidebar-w); background: #0b2f2c; color: #cfe3e0; position: sticky; top: 0; height: 100vh; overflow-y: auto; }
.app-sidebar .brand { display: flex; align-items: center; gap: .6rem; padding: 1rem; font-weight: 700; color: #fff; text-decoration: none; font-size: 1.05rem; border-bottom: 1px solid rgba(255,255,255,.08); }
.app-sidebar .brand i { font-size: 1.5rem; color: #5eead4; }
.menu { padding: .5rem 0 2rem; }
.menu-link, .menu-sub { display: flex; align-items: center; gap: .6rem; color: #cfe3e0; text-decoration: none; padding: .5rem 1rem; }
.menu-link:hover, .menu-sub:hover { background: rgba(255,255,255,.07); color: #fff; }
.menu-link.active { background: rgba(94,234,212,.14); color: #fff; border-left: 3px solid #5eead4; padding-left: calc(1rem - 3px); }
.menu-link .caret { margin-left: auto; font-size: .7rem; transition: transform .15s; }
.menu-link[aria-expanded=true] .caret { transform: rotate(180deg); }
.menu-sub { padding-left: 2.7rem; font-size: .84rem; }
.menu-sub.active { color: #5eead4; font-weight: 600; }
.app-main { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; }
.app-topbar { display: flex; align-items: center; gap: .5rem; padding: .5rem 1rem; background: var(--bs-body-bg); border-bottom: 1px solid var(--bs-border-color); position: sticky; top: 0; z-index: 1020; }
.global-search { max-width: 520px; }
.global-search > i { position: absolute; left: .6rem; top: .45rem; color: #888; }
.global-search input { padding-left: 2rem; }
.app-content { padding: 1rem; flex: 1 1 auto; }
.app-footer { padding: .6rem 1rem; color: #888; font-size: .75rem; border-top: 1px solid var(--bs-border-color); }
.notif-count { position: absolute; top: -6px; right: -6px; font-size: .6rem; }
.notif-item { display: block; padding: .5rem .85rem; border-bottom: 1px solid var(--bs-border-color); text-decoration: none; color: inherit; }
.notif-item.unread { background: rgba(15,118,110,.08); }
.card { border-color: var(--bs-border-color); }
.card-header { font-weight: 600; background: transparent; }
.stat-card { border-left: 4px solid var(--brand); }
.stat-card .value { font-size: 1.4rem; font-weight: 700; }
.table > :not(caption) > * > * { padding: .45rem .6rem; }
.table-sm > :not(caption) > * > * { padding: .3rem .5rem; }
.num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.guest-body { background: linear-gradient(135deg, #0b2f2c, #0f766e); }
.required::after { content: ' *'; color: #dc3545; }
@media (max-width: 991.98px) {
  .app-sidebar { position: fixed; left: calc(-1 * var(--sidebar-w)); z-index: 1040; transition: left .2s; }
  .app-sidebar.open { left: 0; box-shadow: 0 0 40px rgba(0,0,0,.4); }
}
@media print { .app-sidebar, .app-topbar, .app-footer, .page-actions, .no-print { display: none !important; } .app-content { padding: 0; } }
