/* =========================================================
   AttendCEO — Modern Blue + Amber Design System
   ========================================================= */

:root{
  /* Primary palette */
  --blue-deep:#0E2A4D;
  --blue-primary:#1B4A8A;
  --blue-medium:#3A7BC4;
  --blue-light:#D6E6F7;
  --blue-soft:#EAF1FB;

  /* Accent (amber / warm gold) */
  --amber:#DFA63A;
  --amber-dark:#A87D1E;
  --amber-soft:#FDF5E1;

  /* Semantic */
  --success:#16a34a;
  --danger:#dc2626;
  --warning:#f59e0b;
  --info:#1F5F96;

  /* Neutrals */
  --neutral-0:#FFFFFF;
  --neutral-50:#F5F8FB;
  --neutral-100:#EEF2F6;
  --neutral-200:#DCE3EA;
  --neutral-300:#C7D0D9;
  --neutral-600:#6B7280;
  --neutral-700:#4B5563;
  --neutral-800:#1F2937;
  --neutral-900:#111827;

  /* Surfaces / borders */
  --bg-surface:#FFFBF7;
  --bg-soft:#F8F5F0;
  --border:#DCE3EA;
  --border-soft:#EEF2F6;

  --radius:12px;
  --shadow-card:0 1px 3px rgba(18,59,99,0.06);
  --shadow-card-hover:0 8px 20px rgba(18,59,99,0.10);
  --shadow-sm:0 1px 2px rgba(15,23,42,0.04);
  --shadow:0 2px 6px rgba(15,23,42,0.06);
  --font-sans:'Inter', ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, "Noto Sans", sans-serif;
}

*, *::before, *::after{box-sizing:border-box;}
html{font-size:16px; scroll-behavior:smooth; -webkit-font-smoothing:antialiased;}
body{font-family:var(--font-sans); background:var(--neutral-50); color:var(--neutral-800); line-height:1.55; margin:0; padding:0; min-height:100vh;}
a{color:var(--blue-primary); text-decoration:none; transition:color .15s;}
a:hover{color:var(--blue-medium);}
img{max-width:100%; height:auto; display:block;}

/* =========================================================
   LAYOUT
   ========================================================= */
.app-shell{display:flex; min-height:100vh;}
.app-container{display:flex; width:100%; min-height:100vh;}

/* Sidebar */
.app-sidebar{width:260px; flex-shrink:0; background:#fff; border-right:1px solid var(--neutral-200); position:sticky; top:0; height:100vh; overflow-y:auto; overflow-x:hidden; transition:width .25s ease; z-index:40; display:flex; flex-direction:column;}
.sidebar-header{padding:24px 20px; border-bottom:1px solid var(--neutral-100); display:flex; align-items:center; gap:12px;}
.sidebar-brand{display:flex; align-items:center; gap:12px; font-weight:700; font-size:1.1rem; color:var(--blue-primary); text-decoration:none; letter-spacing:-0.02em;}
.brand-icon{width:36px; height:36px; border-radius:10px; background:linear-gradient(135deg,var(--blue-deep) 0%,var(--blue-primary) 100%); color:#fff; display:flex; align-items:center; justify-content:center; font-size:1.05rem; box-shadow:0 2px 8px rgba(14,42,77,.3); flex-shrink:0;}
.brand-text{white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.sidebar-toggle-btn{margin-left:auto; width:32px; height:32px; border-radius:8px; border:1px solid var(--neutral-200); background:var(--neutral-50); color:var(--neutral-600); display:flex; align-items:center; justify-content:center; cursor:pointer; transition:all .2s; flex-shrink:0;}
.sidebar-toggle-btn:hover{background:#fff; border-color:var(--blue-primary); color:var(--blue-primary);}

/* User block */
.sidebar-user{padding:16px 20px; border-bottom:1px solid var(--neutral-100); display:flex; align-items:center; gap:12px;}
.user-avatar{width:40px; height:40px; border-radius:50%; background:linear-gradient(135deg,var(--amber),var(--amber-dark)); color:#fff; display:flex; align-items:center; justify-content:center; font-weight:700; font-size:.9rem; box-shadow:0 2px 6px rgba(233,163,25,.25); flex-shrink:0;}
.user-info{min-width:0;}
.user-name{font-weight:600; font-size:.85rem; color:var(--neutral-800); white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.user-role{font-size:.75rem; color:var(--neutral-600); white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}

/* Nav groups */
.sidebar-nav{flex:1; padding:8px 12px;}
.nav-list{list-style:none; padding:0; margin:0;}
.nav-group{border-bottom:1px solid var(--neutral-100);}
.nav-group-toggle{width:100%; display:flex; align-items:center; gap:10px; padding:14px 12px; background:none; border:none; cursor:pointer; font-size:.82rem; font-weight:600; color:var(--neutral-600); text-align:left; transition:background .15s; border-radius:8px;}
.nav-group-toggle:hover{background:var(--blue-soft); color:var(--blue-primary);}
.nav-group-icon{width:28px; height:28px; display:flex; align-items:center; justify-content:center; border-radius:8px; background:linear-gradient(135deg,var(--amber-soft),#fff); color:var(--amber-dark); font-size:.75rem; flex-shrink:0; box-shadow:0 1px 3px rgba(223,166,58,.2); border:1px solid #f0e2b8;}
.nav-group-title{flex:1; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.nav-group-chevron{color:#94a3b8; transition:transform .2s ease; flex-shrink:0;}
.nav-group-toggle[aria-expanded="true"] .nav-group-chevron{transform:rotate(90deg);}
.nav-sublist{list-style:none; padding:0 0 4px 10px; max-height:0; overflow:hidden; transition:max-height .25s ease;}
.nav-sublist.open{max-height:500px;}
.nav-link{display:flex; align-items:center; gap:10px; padding:10px 12px; border-radius:8px; text-decoration:none; color:#334155; font-size:.82rem; font-weight:500; transition:all .15s; position:relative;}
.nav-link:hover{background:var(--blue-soft); color:var(--blue-primary);}
.nav-link--active{background:linear-gradient(135deg,var(--blue-deep),var(--blue-primary)); color:#fff; box-shadow:0 2px 8px rgba(27,74,138,.35); border:1px solid var(--blue-medium);}
.nav-link--active .nav-link-icon{color:#fff;}
.nav-link-icon{width:24px; text-align:center; color:#64748b; font-size:.8rem; flex-shrink:0;}
.nav-link-text{flex:1; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.nav-link-indicator{width:6px; height:6px; border-radius:50%; background:var(--amber); box-shadow:0 0 0 2px rgba(223,166,58,.35); flex-shrink:0;}

/* Sidebar footer */
.sidebar-footer{padding:12px 20px; border-top:1px solid var(--neutral-100); display:flex; align-items:center; gap:10px;}
.nav-link--footer{display:flex; align-items:center; gap:10px; padding:8px 12px; border-radius:8px; color:#64748b; font-size:.82rem; font-weight:500; text-decoration:none; transition:all .15s;}
.nav-link--footer:hover{background:var(--blue-soft); color:var(--blue-primary);}
.app-version{margin-left:auto; font-size:.7rem; color:#94a3b8;}

/* Collapsed sidebar */
body.sidebar-collapsed .app-sidebar{width:72px;}
body.sidebar-collapsed .nav-group-toggle{justify-content:center; padding:14px 0;}
body.sidebar-collapsed .nav-group-title,
body.sidebar-collapsed .nav-group-chevron,
body.sidebar-collapsed .nav-sublist,
body.sidebar-collapsed .nav-link-text,
body.sidebar-collapsed .user-info{display:none;}
body.sidebar-collapsed .nav-link{justify-content:center; padding:10px 0;}
body.sidebar-collapsed .sidebar-user{display:none;}
body.sidebar-collapsed .nav-group-icon{margin:0;}
body.sidebar-collapsed .sidebar-header{padding:16px 10px; justify-content:center;}
body.sidebar-collapsed .sidebar-brand{justify-content:center;}
body.sidebar-collapsed .brand-text{display:none;}
body.sidebar-collapsed .sidebar-footer{justify-content:center; padding:12px 10px;}
body.sidebar-collapsed .nav-link--footer .nav-link-text{display:none;}

/* Collapsed tooltips via data-tooltip */
.app-sidebar[data-tooltip], body.sidebar-collapsed [data-tooltip]{position:relative;}
body.sidebar-collapsed [data-tooltip]:hover::after{content:attr(data-tooltip); position:absolute; left:60px; top:50%; transform:translateY(-50%); background:var(--neutral-900); color:#fff; padding:4px 10px; border-radius:6px; font-size:.75rem; white-space:nowrap; z-index:50; pointer-events:none; box-shadow:0 4px 12px rgba(15,23,42,.2);}

/* Overlay */
.sidebar-overlay{position:fixed; inset:0; background:rgba(15,23,42,.4); z-index:35; opacity:0; pointer-events:none; transition:opacity .25s ease;}
.app-sidebar.open-mobile+ .sidebar-overlay{opacity:1; pointer-events:auto;}
.app-sidebar.open+ .sidebar-overlay{opacity:1; pointer-events:auto;}

/* App body */
.app-body{flex:1; min-width:0; margin-left:0; transition:none; display:flex; flex-direction:column;}

/* Main */
.app-main{flex:1; padding:24px 24px 48px; max-width:1400px; margin:0 auto; width:100%;}
.app-main__inner{display:flex; flex-direction:column; gap:24px;}

/* =========================================================
   HEADER
   ========================================================= */
.app-header{position:sticky; top:0; z-index:30; height:64px; background:#fff; border-bottom:1px solid #f0e2b8; display:flex; align-items:center; justify-content:space-between; padding:0 24px; gap:16px; box-shadow:0 2px 8px rgba(243,246,247,.6);}
.header-left{display:flex; align-items:center; gap:12px;}
.mobile-sidebar-toggle{display:none; background:none; border:none; cursor:pointer; color:var(--neutral-600); padding:6px; border-radius:8px; transition:background .15s;}
.mobile-sidebar-toggle:hover{background:var(--blue-soft); color:var(--blue-primary);}
.breadcrumb{display:flex; align-items:center; gap:8px; font-size:.82rem; color:var(--neutral-600);}
.breadcrumb-list{display:flex; align-items:center; gap:8px; list-style:none; padding:0; margin:0;}
.breadcrumb-link{color:var(--neutral-600); text-decoration:none; display:inline-flex; align-items:center; gap:4px; transition:color .15s;}
.breadcrumb-link:hover{color:var(--blue-primary);}
.breadcrumb-current{color:var(--neutral-800); font-weight:600;}
.breadcrumb-separator{color:var(--neutral-300); flex-shrink:0;}

.header-center{flex:1; max-width:560px; min-width:0;}
.search-container{position:relative;}
.search-icon{position:absolute; left:12px; top:50%; transform:translateY(-50%); color:#94a3b8; pointer-events:none;}
.search-input{width:100%; height:40px; padding:0 80px 0 36px; border:1px solid var(--neutral-200); border-radius:10px; background:var(--neutral-50); font-size:.85rem; color:var(--neutral-800); outline:none; transition:all .2s; font-family:inherit;}
.search-input:focus{border-color:var(--blue-primary); box-shadow:0 0 0 3px rgba(18,59,99,.12); background:#fff;}
.search-shortcut{position:absolute; right:10px; top:50%; transform:translateY(-50%); font-size:.7rem; color:#94a3b8; display:flex; gap:2px;}
.search-shortcut kbd{font-family:inherit; border:1px solid var(--neutral-200); border-radius:4px; padding:0 4px; background:#fff; font-size:.65rem; line-height:1.2;}
.search-results{position:absolute; top:48px; left:0; right:0; background:#fff; border:1px solid var(--neutral-200); border-radius:10px; box-shadow:0 10px 25px rgba(15,23,42,.1); z-index:50; padding:8px 0; display:none; max-height:320px; overflow-y:auto;}
.search-results.active{display:block;}

.header-right{display:flex; align-items:center; gap:8px; flex-shrink:0;}
.header-actions{display:flex; align-items:center; gap:6px;}
.header-btn{width:36px; height:36px; border-radius:10px; border:1px solid var(--neutral-200); background:#fff; display:flex; align-items:center; justify-content:center; color:var(--neutral-600); cursor:pointer; transition:all .15s; flex-shrink:0; padding:0;}
.header-btn:hover{background:var(--blue-soft); border-color:var(--blue-primary); color:var(--blue-primary);}
.user-btn{width:auto; padding:0 10px 0 6px; border-radius:20px; gap:6px;}
.user-avatar-header{width:28px; height:28px; border-radius:50%; background:linear-gradient(135deg,var(--amber),var(--amber-dark)); color:#fff; display:flex; align-items:center; justify-content:center; font-weight:700; font-size:.75rem; flex-shrink:0;}
.user-name-header{font-weight:600; font-size:.8rem; color:var(--neutral-800); white-space:nowrap; max-width:100px; overflow:hidden; text-overflow:ellipsis;}
.user-chevron{color:#94a3b8; flex-shrink:0;}
.notification-badge{position:absolute; top:-2px; right:-2px; width:14px; height:14px; background:var(--danger); color:#fff; font-size:.65rem; font-weight:700; border-radius:50%; display:flex; align-items:center; justify-content:center; border:2px solid #fff;}
.dropdown-container{position:relative;}
.dropdown-panel{position:absolute; top:44px; right:0; width:320px; background:#fff; border:1px solid var(--neutral-200); border-radius:12px; box-shadow:0 10px 25px rgba(15,23,42,.1); z-index:50; overflow:hidden; animation:fadeIn .15s ease;}
.dropdown-panel[hidden]{display:none;}
.dropdown-panel:not([hidden]){display:block;}
.dropdown-container.is-open .dropdown-panel:not([hidden]){display:block;}
.dropdown-header{padding:14px 16px; border-bottom:1px solid var(--neutral-100); display:flex; align-items:center; justify-content:space-between;}
.dropdown-title{font-weight:600; font-size:.9rem; color:var(--neutral-800); margin:0;}
.dropdown-action{font-size:.75rem; color:var(--blue-primary); font-weight:600; background:none; border:none; cursor:pointer;}
.dropdown-content{padding:8px 0; max-height:320px; overflow-y:auto;}
.dropdown-empty{padding:24px; text-align:center; color:#94a3b8; font-size:.85rem;}
.dropdown-item{display:flex; align-items:center; gap:10px; padding:10px 16px; text-decoration:none; color:#334155; font-size:.85rem; transition:background .15s;}
.dropdown-item:hover{background:var(--blue-soft); color:var(--blue-primary);}
.dropdown-item--danger{color:var(--danger);}
.dropdown-divider{height:1px; background:var(--neutral-100); margin:4px 0;}
.dropdown-footer{padding:8px 16px; border-top:1px solid var(--neutral-100);}
.dropdown-footer-link{font-size:.82rem; font-weight:600; color:var(--blue-primary); text-decoration:none;}

@keyframes fadeIn{from{opacity:0; transform:translateY(-4px);} to{opacity:1; transform:translateY(0);}}

/* =========================================================
   TOAST
   ========================================================= */
.toast-container{position:fixed; bottom:24px; right:24px; z-index:60; display:flex; flex-direction:column; gap:10px;}
.toast{padding:14px 16px; border-radius:10px; color:#fff; font-size:.85rem; font-weight:500; box-shadow:0 10px 25px rgba(15,23,42,.15); animation:slideUp .25s ease; display:flex; align-items:center; gap:10px; min-width:300px; max-width:420px;}
.toast--success{background:var(--success);}
.toast--error{background:var(--danger);}
.toast--warning{background:var(--warning); color:#1e293b;}
.toast--info{background:var(--blue-primary);}
@keyframes slideUp{from{transform:translateY(20px); opacity:0;} to{transform:translateY(0); opacity:1;}}

/* =========================================================
   PAGE & SECTIONS
   ========================================================= */
.page{width:100%; max-width:1200px; margin:0 auto; padding:24px;}
.page-head{display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:24px; flex-wrap:wrap;}
.page-head h1{font-size:1.75rem; font-weight:700; color:var(--blue-primary); letter-spacing:-0.03em; line-height:1.2; margin:0;}
.page-actions{display:flex; gap:10px; flex-wrap:wrap;}

/* Greeting */
.dashboard-greeting{background:linear-gradient(135deg,var(--blue-primary) 0%,var(--blue-deep) 100%); border-radius:var(--radius); padding:28px 32px; color:#fff; margin-bottom:24px; box-shadow:0 8px 30px rgba(18,59,99,.35);}
.dashboard-greeting__title{font-size:1.8rem; font-weight:700; letter-spacing:-0.03em; margin-bottom:6px; line-height:1.2;}
.dashboard-greeting__subtitle{color:#cbd5e1; font-size:.95rem;}
.dashboard-greeting__meta{display:flex; gap:16px; margin-top:12px; flex-wrap:wrap; font-size:.85rem; color:#e2e8f0;}
.greeting-meta-item{display:inline-flex; align-items:center; gap:6px;}

/* Stats grid */
.stats-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:16px; margin-bottom:24px;}
.stat-card{background:#fff; border:1px solid var(--neutral-200); border-radius:var(--radius); padding:20px; transition:transform .15s ease, box-shadow .15s ease; box-shadow:var(--shadow-card); position:relative;}
.stat-card:hover{transform:translateY(-2px); box-shadow:var(--shadow-card-hover);}
.stat-card__header{display:flex; align-items:flex-start; justify-content:space-between; margin-bottom:12px;}
.stat-card__icon{width:44px; height:44px; border-radius:10px; display:flex; align-items:center; justify-content:center; font-size:1.1rem; color:#fff; box-shadow:0 2px 6px rgba(18,59,99,.2); flex-shrink:0;}
.stat-card__icon--primary{background:linear-gradient(135deg,var(--blue-primary),var(--blue-medium));}
.stat-card__icon--success{background:linear-gradient(135deg,var(--success),#22c55e);}
.stat-card__icon--warning{background:linear-gradient(135deg,var(--warning),#fbbf24);}
.stat-card__icon--danger{background:linear-gradient(135deg,var(--danger),#ef4444);}
.stat-card__icon--info{background:linear-gradient(135deg,var(--blue-primary),var(--blue-medium));}
.stat-card__value{font-size:1.6rem; font-weight:700; color:var(--neutral-800); line-height:1.1; letter-spacing:-0.04em;}
.stat-card__label{font-size:.8rem; color:var(--neutral-600); margin-top:4px; font-weight:500;}
.stat-card__trend{font-size:.75rem; color:#94a3b8; margin-top:6px;}
.stat-card__link{display:inline-flex; align-items:center; gap:6px; font-size:.75rem; font-weight:600; color:var(--blue-primary); margin-top:4px;}

/* Cards */
.card{background:#fff; border:1px solid var(--neutral-200); border-radius:var(--radius); padding:24px; box-shadow:var(--shadow-card);}
.card-head{display:flex; align-items:center; justify-content:space-between; margin-bottom:16px; padding-bottom:12px; border-bottom:1px solid var(--neutral-100); gap:16px; flex-wrap:wrap;}
.card-title{font-size:1.05rem; font-weight:600; color:var(--neutral-800); margin:0;}

/* Filter bar */
.filter-bar{display:flex; flex-wrap:wrap; gap:12px; align-items:flex-end; margin-bottom:16px; background:var(--neutral-50); padding:12px 14px; border-radius:10px; border:1px solid var(--neutral-200);}
.filter-group{display:flex; flex-direction:column; gap:4px; min-width:120px; flex:1;}
.filter-group label{font-size:.75rem; font-weight:600; color:var(--neutral-600);}
.filter-group input,
.filter-group select{height:36px; padding:0 10px; border:1px solid var(--neutral-300); border-radius:8px; font-size:.82rem; color:var(--neutral-800); background:#fff; outline:none; transition:border-color .15s, box-shadow .15s; font-family:inherit;}
.filter-group input:focus,
.filter-group select:focus{border-color:var(--blue-primary); box-shadow:0 0 0 3px rgba(18,59,99,.1);}

/* Tables */
.data-table{width:100%; border-collapse:collapse; font-size:.85rem;}
.data-table thead th{text-align:left; padding:12px 14px; font-weight:600; color:var(--neutral-600); border-bottom:2px solid var(--blue-primary); font-size:.78rem; text-transform:uppercase; letter-spacing:.03em; background:var(--neutral-50); white-space:nowrap;}
.data-table tbody td{padding:12px 14px; color:#334155; border-bottom:1px solid var(--neutral-200); vertical-align:middle;}
.data-table tbody tr:hover{background:var(--blue-soft);}
.data-table tbody tr:last-child td{border-bottom:none;}

/* Badges */
.badge{display:inline-flex; align-items:center; gap:4px; padding:4px 10px; border-radius:999px; font-size:.75rem; font-weight:600; letter-spacing:.01em; border:1px solid transparent; line-height:1.2;}
.badge-prod{background:var(--success); color:#fff; border-color:#15803d;}
.badge-dev{background:var(--amber); color:#5a3f0b; border-color:#b58300;}
.badge-archived{background:#7c241c; color:#fff; border-color:#9e2b22;}
.badge-info{background:var(--blue-primary); color:#fff; border-color:var(--blue-medium);}
.badge-neutral{background:var(--neutral-100); color:#475569; border-color:var(--neutral-200);}

/* Buttons */
.btn{display:inline-flex; align-items:center; justify-content:center; gap:8px; padding:10px 18px; border-radius:8px; font-size:.85rem; font-weight:600; border:1px solid transparent; cursor:pointer; text-decoration:none; transition:all .15s ease; font-family:inherit; box-shadow:0 1px 2px rgba(18,59,99,.08);}
.btn-primary{background:var(--blue-primary); color:#fff; border-color:var(--blue-primary);}
.btn-primary:hover{background:var(--blue-medium); border-color:var(--blue-medium); transform:translateY(-1px); box-shadow:0 4px 12px rgba(18,59,99,.25);}
.btn-secondary{background:var(--neutral-50); color:#334155; border-color:var(--neutral-200);}
.btn-secondary:hover{background:var(--neutral-100); border-color:var(--neutral-300);}
.btn-important{background:linear-gradient(135deg,var(--amber),var(--amber-dark)); color:#fff; border-color:var(--amber); box-shadow:0 2px 6px rgba(223,166,58,.3);}
.btn-important:hover{background:linear-gradient(135deg,var(--amber-dark),#a87d1e); border-color:var(--amber-dark); transform:translateY(-1px); box-shadow:0 6px 16px rgba(223,166,58,.4);}
.btn-success{background:var(--success); color:#fff; border-color:var(--success);}
.btn-danger{background:var(--danger); color:#fff; border-color:var(--danger);}
.btn-sm{padding:6px 12px; font-size:.75rem;}

/* Pagination */
.pagination{display:flex; gap:6px; justify-content:center; margin-top:16px; flex-wrap:wrap;}
.pagination-link{padding:6px 10px; border-radius:6px; text-decoration:none; font-size:.82rem; font-weight:600; color:#334155; border:1px solid var(--neutral-200); background:#fff; transition:all .15s;}
.pagination-link:hover{background:var(--blue-soft); border-color:var(--blue-primary); color:var(--blue-primary);}
.pagination-link.active{background:var(--blue-primary); color:#fff; border-color:var(--blue-primary);}

/* Empty state */
.empty-state{text-align:center; padding:48px 20px; color:#94a3b8; font-size:.95rem;}
.empty-state-icon{width:64px; height:64px; margin:0 auto 1rem; border-radius:50%; background:rgba(31,95,150,.10); color:var(--blue-primary, #1F5F96); display:flex; align-items:center; justify-content:center; font-size:1.5rem;}
.empty-state-title{font-size:1rem; font-weight:700; color:var(--neutral-800, #1e293b); margin-bottom:.4rem;}
.empty-state-text{font-size:.88rem; color:var(--neutral-500, #64748b); max-width:380px; margin:0 auto; line-height:1.5;}

/* Alerts */
.alert{display:flex; align-items:center; gap:12px; padding:14px 16px; border-radius:10px; border-left:4px solid; font-size:.9rem; background:var(--neutral-50);}
.alert--warning{background:#fff8e6; border-color:var(--amber); color:#7c5e08;}
.alert__icon{font-size:1.1rem; flex-shrink:0;}
.alert--warning .alert__icon{color:var(--amber);}
.alert__content{flex:1;}
.alert__action{display:inline-block; margin-top:6px; color:var(--blue-primary); font-weight:600; text-decoration:none;}

/* Forms / Inputs general */
input, select, textarea{font-family:inherit; font-size:.85rem; color:var(--neutral-800);}

.mini-list-row{display:flex; align-items:center; gap:.6rem;}
.mini-avatar{width:32px; height:32px; border-radius:50%; font-size:.7rem; display:inline-flex; align-items:center; justify-content:center; flex-shrink:0;}
.fw-semibold{font-weight:600;}
.icon-xs{font-size:.7rem;}
.field-label{display:block; font-size:.82rem; font-weight:600; color:var(--neutral-600); margin-bottom:6px;}
.field{display:block; margin-bottom:16px;}
.field-error{font-size:.82rem; color:var(--danger); font-weight:500; margin-top:4px; display:block;}
input.has-error, select.has-error, textarea.has-error{border-color:var(--danger) !important; box-shadow:0 0 0 3px rgba(220,38,38,.12) !important;}

.summary-row{display:flex; align-items:center; gap:12px; padding:6px 0;}
.summary-row__label{width:80px; color:var(--neutral-600); font-weight:600; font-size:.85rem;}
.summary-row__bar{flex:1; height:10px; background:var(--neutral-100); border-radius:999px; overflow:hidden;}
.summary-row__bar-fill{height:100%; border-radius:999px; transition:width .4s ease;}
.summary-row__bar-fill--present{background:var(--success);}
.summary-row__bar-fill--late{background:var(--warning);}
.summary-row__bar-fill--absent{background:var(--danger);}
.summary-row__bar-fill--excused{background:var(--blue-medium);}
.summary-row__value{width:60px; text-align:right; font-weight:600; font-size:.85rem; color:var(--neutral-800);}
.mini-list-avatar{background:linear-gradient(135deg,var(--blue-primary),var(--blue-medium)); color:#fff;}

/* Responsive */
@media (max-width:1024px){
  .mobile-sidebar-toggle{display:block;}
.app-sidebar{position:fixed; left:-260px; z-index:40; box-shadow:4px 0 20px rgba(15,23,42,.15);}
.app-sidebar.open-mobile{left:0;}
.app-sidebar.open{left:0;}
  .app-body{margin-left:0;}
  body.sidebar-collapsed .app-body{margin-left:0;}
  .stats-grid{grid-template-columns:repeat(2,1fr);}
  .search-shortcut{display:none;}
}
@media (max-width:640px){
  .stats-grid{grid-template-columns:1fr;}
  .header-center{display:none;}
  .page-head h1{font-size:1.35rem;}
  .filter-bar{flex-direction:column; align-items:stretch;}
  .app-main{padding:16px 16px 32px;}
  .dashboard-greeting{padding:20px;}
  .dashboard-greeting__title{font-size:1.35rem;}
}

/* Auth / Guest pages */
.auth-page{max-width:440px; margin:2rem auto;}
.auth-card{padding:2rem 2.25rem; border-radius:14px;}
.auth-head{text-align:center; margin-bottom:1.25rem;}
.auth-head .app-brand-mark{width:3rem; height:3rem; font-size:1.5rem; margin-bottom:0.6rem;}
.auth-links{text-align:center; margin-top:1rem; font-size:0.9rem;}
.btn-block{width:100%;}

.guest-shell{min-height:100vh; display:grid; place-items:start center; padding:3rem 1rem; background:var(--neutral-50, #f8fafc);}
.guest-main{width:100%; max-width:780px;}
.error-shell{place-items:center;}

.btn-large{padding:0.75rem 1.5rem; font-size:0.95rem;}
