/* Runtime 3.0.7.6 — Global design consistency, brand-token bridge, Attendance/Rooms spacing and Student row actions. */

/* Global brand consistency layer. Semantic success/warning/danger colors remain independent. */
.runtime-3076{--r3076-card-radius:14px;--r3076-control-radius:9px;--r3076-section-gap:20px;--r3076-card-shadow:0 5px 18px rgba(16,33,44,.045)}
.runtime-3076 .brand-mark{background:var(--tenant-primary);color:var(--tenant-primary-foreground);box-shadow:none}
.runtime-3076 .brand-mark.brand-logo{overflow:hidden;background:#fff;border:1px solid color-mix(in srgb,var(--tenant-primary) 20%,var(--line))}
.runtime-3076 .brand-mark.brand-logo img{display:block;width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain;object-position:center}
.runtime-3076 .nav-item:hover{background:var(--tenant-primary-soft);color:var(--tenant-primary-hover)}
.runtime-3076 .nav-item.active{background:var(--tenant-primary-soft);color:var(--tenant-primary-hover);box-shadow:inset 3px 0 0 var(--tenant-primary)}
.runtime-3076 .nav-item.active .ui-icon,.runtime-3076 .nav-item:hover .ui-icon{color:currentColor}
.runtime-3076 .eyebrow,.runtime-3076 .page-heading small{color:var(--tenant-secondary)}
.runtime-3076 .btn{border-radius:var(--r3076-control-radius)}
.runtime-3076 .btn-primary{background:var(--tenant-primary);border-color:var(--tenant-primary);color:var(--tenant-primary-foreground)}
.runtime-3076 .btn-primary:hover{background:var(--tenant-primary-hover);border-color:var(--tenant-primary-hover);color:var(--tenant-primary-foreground)}
.runtime-3076 .btn-secondary{background:#fff;color:var(--tenant-secondary);border-color:color-mix(in srgb,var(--tenant-secondary) 24%,var(--neutral-300,#d2dce1))}
.runtime-3076 .btn-secondary:hover{background:var(--tenant-secondary-soft);border-color:color-mix(in srgb,var(--tenant-secondary) 38%,var(--neutral-300,#d2dce1));color:var(--tenant-secondary-hover)}
.runtime-3076 .btn-ghost{color:var(--tenant-secondary)}
.runtime-3076 .btn-ghost:hover{background:var(--tenant-secondary-soft);color:var(--tenant-secondary-hover)}
.runtime-3076 .icon-button:hover{background:var(--tenant-primary-soft);border-color:color-mix(in srgb,var(--tenant-primary) 28%,var(--line));color:var(--tenant-primary-hover)}
.runtime-3076 .form-control:focus{border-color:var(--tenant-primary);box-shadow:0 0 0 3px var(--tenant-focus-ring)}
.runtime-3076 .settings-tabs a.active,.runtime-3076 .r302-tabs a.active,.runtime-3076 .view-switch a.active{background:var(--tenant-primary-soft);color:var(--tenant-primary-hover);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--tenant-primary) 24%,#fff)}
.runtime-3076 .settings-tabs a:hover,.runtime-3076 .r302-tabs a:hover,.runtime-3076 .view-switch a:hover{background:color-mix(in srgb,var(--tenant-primary-soft) 68%,#fff);color:var(--tenant-primary-hover)}
.runtime-3076 .pagination .active{background:var(--tenant-primary);border-color:var(--tenant-primary);color:var(--tenant-primary-foreground)}
.runtime-3076 .tabs a.active,.runtime-3076 .entity-tabs a.active{color:var(--tenant-primary-hover);border-color:var(--tenant-primary)}
.runtime-3076 .card{border-radius:var(--r3076-card-radius);box-shadow:var(--r3076-card-shadow)}
.runtime-3076 .page-stack{gap:var(--r3076-section-gap)}
.runtime-3076 .page-title-row{gap:18px}
.runtime-3076 .toolbar{gap:12px;margin-bottom:18px}
.runtime-3076 .toolbar-group{gap:7px}
.runtime-3076 .table th,.runtime-3076 .table td{padding-top:13px;padding-bottom:13px}
.runtime-3076 .table tbody tr{transition:background-color .14s ease}
.runtime-3076 .table tbody tr:hover{background:color-mix(in srgb,var(--tenant-primary-soft) 30%,#fff)}
.runtime-3076 .row-menu-pop a:hover,.runtime-3076 .row-menu-pop button:hover{background:var(--tenant-primary-soft)}
.runtime-3076 .preview-sidebar{background:linear-gradient(145deg,var(--tenant-secondary-hover),var(--tenant-secondary));color:var(--tenant-secondary-foreground)}
.runtime-3076 .preview-sidebar i{background:color-mix(in srgb,var(--tenant-primary) 30%,transparent)}

/* Attendance: add breathing room between KPI and session rows; optically center SVG icons. */
.runtime-3076 .attendance-3075{gap:22px}
.runtime-3076 .attendance-kpi-grid{column-gap:16px;row-gap:18px;margin-bottom:2px}
.runtime-3076 .attendance-card-grid{column-gap:16px;row-gap:20px}
.runtime-3076 .attendance-kpi{min-height:104px;padding:17px 18px;gap:14px;border-radius:15px}
.runtime-3076 .attendance-kpi-icon{display:inline-grid;place-items:center;align-self:center;justify-self:center;width:44px;height:44px;min-width:44px;min-height:44px;line-height:0;border-radius:12px;background:var(--tenant-primary-soft);color:var(--tenant-primary);overflow:hidden}
.runtime-3076 .attendance-kpi-icon .ui-icon{display:block;width:20px;height:20px;margin:0;vertical-align:middle;transform:none;stroke:currentColor}
.runtime-3076 .attendance-session-card{padding:17px;border-radius:15px;box-shadow:var(--r3076-card-shadow);transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}
.runtime-3076 .attendance-session-card:not(:disabled):hover{border-color:color-mix(in srgb,var(--tenant-primary) 28%,var(--line));box-shadow:0 9px 24px rgba(16,33,44,.075);transform:translateY(-1px)}
.runtime-3076 .attendance-progress{background:color-mix(in srgb,var(--tenant-primary) 10%,#eef2f4)}
.runtime-3076 .attendance-progress i{background:linear-gradient(90deg,var(--tenant-primary),var(--tenant-primary-hover))}

/* Rooms: consistent vertical rhythm and card density with Attendance/Classes. */
.runtime-3076 .rooms-3075{gap:22px}
.runtime-3076 .room-summary-grid{column-gap:16px;row-gap:20px}
.runtime-3076 .room-summary-card{padding:18px;border-radius:15px;box-shadow:var(--r3076-card-shadow);transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}
.runtime-3076 .room-summary-card:hover{border-color:color-mix(in srgb,var(--tenant-primary) 22%,var(--line));box-shadow:0 9px 24px rgba(16,33,44,.07);transform:translateY(-1px)}
.runtime-3076 .room-card-head{gap:14px}
.runtime-3076 .room-card-icon{background:var(--tenant-primary-soft);color:var(--tenant-primary)}
.runtime-3076 .room-summary-metrics{gap:10px;margin-top:18px}
.runtime-3076 .room-summary-metrics>div{padding:11px 12px;border-color:color-mix(in srgb,var(--tenant-primary) 8%,#e6ecef);background:color-mix(in srgb,var(--tenant-primary-soft) 22%,#fff)}
.runtime-3076 .room-note{margin-top:14px;padding-top:12px}
.runtime-3076 .rooms-info-strip{border-color:color-mix(in srgb,var(--tenant-secondary) 20%,var(--line));background:var(--tenant-secondary-soft)}
.runtime-3076 .rooms-info-strip>span{color:var(--tenant-secondary)}
.runtime-3076 .room-kebab-menu{border-radius:11px;box-shadow:0 14px 36px rgba(16,33,44,.14)}
.runtime-3076 .room-menu-action:hover{background:var(--tenant-primary-soft)}

/* Branding: robust preview containment and explicit primary/secondary visual language. */
.runtime-3076 .branding-3076 .brand-upload-field{border-color:color-mix(in srgb,var(--tenant-primary) 12%,var(--line));background:color-mix(in srgb,var(--tenant-primary-soft) 18%,#fff)}
.runtime-3076 .branding-3076 .brand-logo-frame{border-color:color-mix(in srgb,var(--tenant-primary) 18%,var(--line));box-shadow:inset 0 0 0 1px rgba(255,255,255,.65)}
.runtime-3076 .branding-3076 .brand-logo-frame img,.runtime-3076 .branding-3076 .preview-logo img{display:block;width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain;object-position:center}
.runtime-3076 .branding-3076 .preview-logo{display:grid;place-items:center;overflow:hidden;background:var(--tenant-primary)}
.runtime-3076 .branding-3076 .preview-logo>span{color:var(--tenant-primary-foreground)}
.runtime-3076 .branding-3076 .brand-upload-feedback.is-warning{color:#8b5b10}
.runtime-3076 .branding-3076 .color-input{align-items:center}
.runtime-3076 .branding-3076 input[type=color]{border-radius:9px;overflow:hidden;border:1px solid var(--line);padding:2px;background:#fff}
.runtime-3076 .branding-3076 .brand-preview{border-color:color-mix(in srgb,var(--tenant-primary) 14%,var(--line));background:linear-gradient(180deg,#fff,color-mix(in srgb,var(--tenant-primary-soft) 22%,#fff))}
.runtime-3076 .branding-3076 [data-preview-primary]{background:var(--tenant-primary)!important;border-color:var(--tenant-primary)!important;color:var(--tenant-primary-foreground)!important}
.runtime-3076 .branding-3076 [data-preview-secondary]{border-color:var(--tenant-secondary)!important;color:var(--tenant-secondary)!important;background:var(--tenant-secondary-soft)!important}

/* Students: match Sessions/Classes action alignment; never stack/overlap action buttons. */
.runtime-3076 .runtime3076-row-actions{white-space:nowrap;min-width:196px}
.runtime-3076 .runtime3076-student-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:nowrap}
.runtime-3076 .runtime3076-student-actions form{display:inline-flex;margin:0;padding:0}
.runtime-3076 .runtime3076-student-actions .btn{white-space:nowrap;margin:0}

/* Guest/login surfaces inherit the saved brand palette too. */
.guest-body.runtime-3076{background:radial-gradient(circle at 10% 10%,var(--tenant-primary-soft) 0,transparent 34%),linear-gradient(150deg,#fbfcfd,color-mix(in srgb,var(--tenant-secondary-soft) 45%,#f4f7f8))}
.guest-body.runtime-3076 .brand-mark{background:var(--tenant-primary);color:var(--tenant-primary-foreground)}
.guest-body.runtime-3076 .form-control:focus{border-color:var(--tenant-primary);box-shadow:0 0 0 3px var(--tenant-focus-ring)}

@media(max-width:1180px){
  .runtime-3076 .attendance-kpi-grid{row-gap:16px}.runtime-3076 .attendance-card-grid,.runtime-3076 .room-summary-grid{row-gap:18px}
}
@media(max-width:860px){
  .runtime-3076 .page-stack,.runtime-3076 .attendance-3075,.runtime-3076 .rooms-3075{gap:18px}
  .runtime-3076 .runtime3076-student-actions{justify-content:flex-start}
}
@media(max-width:540px){
  .runtime-3076 .attendance-kpi-grid,.runtime-3076 .attendance-card-grid,.runtime-3076 .room-summary-grid{row-gap:14px}
  .runtime-3076 .attendance-kpi{min-height:94px;padding:15px}
  .runtime-3076 .runtime3076-row-actions{min-width:180px}
}
