/* Bank Senoa v2.4.0 — adaptive shell shared by desktop, tablet and mobile. */
.desktop-topbar{display:flex}
.mobile-appbar,.mobile-bottom-nav,.sidebar-close,.brand-mark{display:none}
.mobile-only{display:none!important}
.desktop-only{display:initial}
.content{container-type:inline-size;container-name:senoa-content;width:100%;max-width:var(--s-content-max);margin-inline:auto}
.main{min-width:0}
.panel,.hero-card,.hero-mini,.stat,.account-card{isolation:isolate}
.btn{white-space:normal}
.field textarea{min-height:96px}
.search-row{min-width:0}
.search-row input{min-width:0}
.quick-actions{align-items:stretch}
.quick-actions .btn{min-height:46px}
.panel-head{min-width:0}
.panel-head>*{min-width:0}
.panel-head h2{line-height:1.25}
.table-wrap{-webkit-overflow-scrolling:touch}
.table-wrap table{width:100%}
[data-mobile-table-ready] td::before{display:none}

/* Separate mobile/tablet app bar markup. Hidden on desktop. */
.mobile-appbar{position:sticky;top:0;z-index:18;min-height:calc(var(--s-mobile-header) + var(--s-safe-top));padding:var(--s-safe-top) var(--s-space-4) 0;background:rgba(6,16,32,.9);backdrop-filter:blur(18px);border-bottom:1px solid rgba(255,255,255,.07)}
.mobile-appbar-inner{height:var(--s-mobile-header);display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center}
.mobile-appbar .menu-btn{display:grid!important;place-items:center;width:44px;height:44px;min-height:44px;padding:0;border-radius:14px;border:1px solid rgba(255,255,255,.07);background:rgba(255,255,255,.045);color:#e9f1ff}
.mobile-appbar-copy{min-width:0}
.mobile-appbar-copy small{display:block;margin-bottom:3px;color:#8297bc;font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mobile-appbar-copy h1{margin:0;color:#f4f7ff;font-size:19px;line-height:1.1;letter-spacing:-.025em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mobile-appbar-actions{display:flex;align-items:center;gap:7px}
.mobile-appbar-actions .notify-btn,.mobile-appbar-actions .mobile-search-btn,.mobile-appbar-actions .avatar{width:42px;height:42px;min-height:42px;border-radius:14px}
.mobile-search-btn{display:grid;place-items:center;border:1px solid rgba(255,255,255,.07);background:rgba(255,255,255,.045);color:#c8d7ef}
.mobile-search-btn .nav-svg{width:18px;height:18px}

/* Role-aware mobile navigation. */
.mobile-bottom-nav{position:fixed;left:0;right:0;bottom:0;z-index:24;height:calc(var(--s-mobile-nav) + var(--s-safe-bottom));padding:0 max(8px,var(--s-safe-right)) var(--s-safe-bottom) max(8px,var(--s-safe-left));background:rgba(5,13,29,.95);backdrop-filter:blur(20px);border-top:1px solid rgba(255,255,255,.08);grid-template-columns:repeat(5,minmax(0,1fr));box-shadow:0 -16px 44px rgba(0,0,0,.22)}
.mobile-nav-link,.mobile-nav-menu{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-width:0;padding:7px 4px;border:0;background:transparent;color:#778db2;font-size:10px;font-weight:800;line-height:1}
.mobile-nav-link .nav-svg,.mobile-nav-menu .nav-svg{width:21px;height:21px}
.mobile-nav-link span,.mobile-nav-menu span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mobile-nav-link.active,.mobile-nav-menu.active{color:#e9f1ff}
.mobile-nav-link.active::before,.mobile-nav-menu.active::before{content:"";position:absolute;top:4px;width:28px;height:3px;border-radius:999px;background:linear-gradient(90deg,var(--blue),var(--violet))}
.mobile-nav-link.active .nav-svg,.mobile-nav-menu.active .nav-svg{color:#8bbcff}

/* Drawer close and backdrop are shared by mobile only. */
.sidebar-close{position:absolute;right:14px;top:14px;z-index:3;width:42px;height:42px;min-height:42px;padding:0;border:1px solid rgba(255,255,255,.08);border-radius:14px;background:rgba(255,255,255,.05);color:#fff;font-size:22px}

/* Adaptive confirm dialog: centered modal on desktop, bottom sheet on phone. */
.senoa-dialog-layer{position:fixed;inset:0;z-index:80;display:grid;place-items:center;padding:22px;background:rgba(2,8,19,.68);backdrop-filter:blur(8px)}
.senoa-dialog{width:min(460px,100%);border:1px solid rgba(255,255,255,.09);border-radius:26px;padding:24px;background:linear-gradient(180deg,#14223f,#0d1930);box-shadow:0 32px 100px rgba(0,0,0,.45)}
.senoa-dialog-grip{display:none}
.senoa-dialog h3{margin:0 0 8px;font-size:22px;letter-spacing:-.03em}
.senoa-dialog p{margin:0;color:var(--text-soft);line-height:1.65}
.senoa-dialog-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:22px}
.senoa-dialog-actions .btn{width:100%}
body.dialog-open{overflow:hidden}

/* Mobile toast stack. Desktop flash messages stay inline. */
.senoa-toast-stack{position:fixed;right:20px;top:110px;z-index:70;display:grid;gap:8px;width:min(360px,calc(100% - 40px));pointer-events:none}
.senoa-toast{padding:13px 15px;border:1px solid rgba(47,210,161,.22);border-radius:16px;background:#10273a;color:#c9ffed;box-shadow:0 18px 60px rgba(0,0,0,.35);font-size:13px;font-weight:700;opacity:0;transform:translateY(-8px);animation:senoa-toast-in .22s ease forwards}
.senoa-toast.error{border-color:rgba(255,92,118,.24);background:#341725;color:#ffd9e1}
@keyframes senoa-toast-in{to{opacity:1;transform:none}}

/* Component behavior driven by available container width, not global viewport. */
@container senoa-content (max-width:760px){
  .credential-grid,.tenant-grid,.class-grid,.vault-grid,.health-grid{grid-template-columns:1fr 1fr}
  .theme-picker{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@container senoa-content (max-width:520px){
  .credential-grid,.tenant-grid,.class-grid,.vault-grid,.health-grid{grid-template-columns:1fr}
  .panel-head{align-items:flex-start;flex-wrap:wrap}
  .panel-head>.quick-actions{width:100%}
}

@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

.mobile-filter-trigger,.mobile-filter-head,.mobile-filter-backdrop{display:none}
