@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Outfit:wght@600;700;800&display=swap');

/* ══════════════════════════════════════
   DESIGN TOKENS
   ══════════════════════════════════════ */
:root {
  --bg-app:        hsl(222,28%,7%);
  --bg-sidebar:    hsla(222,28%,5%,.92);
  --bg-card:       hsla(222,22%,12%,.6);
  --bg-card-solid: hsl(222,22%,11%);
  --bg-hover:      hsla(222,22%,16%,.8);
  --border:        hsla(222,18%,22%,.45);
  --border-focus:  hsla(255,80%,65%,.5);

  --text-1: hsl(210,18%,97%);
  --text-2: hsl(218,14%,72%);
  --text-3: hsl(218,10%,48%);

  --primary:      hsl(255,82%,65%);
  --primary-dim:  hsla(255,82%,65%,.14);
  --primary-h:    hsl(255,82%,72%);

  --success:      hsl(142,72%,44%);
  --success-dim:  hsla(142,72%,44%,.14);
  --warning:      hsl(35,92%,50%);
  --warning-dim:  hsla(35,92%,50%,.14);
  --danger:       hsl(346,82%,54%);
  --danger-dim:   hsla(346,82%,54%,.14);
  --info:         hsl(200,82%,52%);
  --info-dim:     hsla(200,82%,52%,.14);

  --font-ui:   'Inter', system-ui, sans-serif;
  --font-head: 'Outfit', var(--font-ui);

  --sh-sm: 0 2px 8px -2px rgba(0,0,0,.35);
  --sh-md: 0 8px 28px -4px rgba(0,0,0,.5);
  --sh-lg: 0 20px 56px -8px rgba(0,0,0,.65);

  --r-sm: 8px; --r-md:14px; --r-lg:20px; --r-full:9999px;
  --ease: cubic-bezier(.4,0,.2,1);
  --t-fast:  150ms var(--ease);
  --t-norm:  250ms var(--ease);
  --blur: 14px;
}

[data-theme="light"] {
  --bg-app:        hsl(210,22%,96%);
  --bg-sidebar:    hsla(210,22%,91%,.94);
  --bg-card:       hsla(0,0%,100%,.75);
  --bg-card-solid: hsl(0,0%,100%);
  --bg-hover:      hsla(210,20%,97%,.9);
  --border:        hsla(210,16%,78%,.55);
  --border-focus:  hsla(255,80%,58%,.5);
  --text-1: hsl(222,28%,12%);
  --text-2: hsl(222,16%,34%);
  --text-3: hsl(222,10%,52%);
  --primary:     hsl(255,78%,56%);
  --primary-dim: hsla(255,78%,56%,.08);
  --primary-h:   hsl(255,78%,48%);
  --success:     hsl(142,68%,36%);
  --success-dim: hsla(142,68%,36%,.09);
  --warning:     hsl(35,88%,42%);
  --warning-dim: hsla(35,88%,42%,.09);
  --danger:      hsl(346,78%,46%);
  --danger-dim:  hsla(346,78%,46%,.09);
  --sh-sm: 0 2px 8px rgba(0,0,0,.05);
  --sh-md: 0 8px 24px rgba(0,0,0,.07);
  --sh-lg: 0 20px 48px rgba(0,0,0,.10);
}

/* ══════════════════════════════════════
   RESET
   ══════════════════════════════════════ */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;outline:none}
html{height:100%}
body{font-family:var(--font-ui);background:var(--bg-app);color:var(--text-1);min-height:100vh;line-height:1.5;transition:background var(--t-norm),color var(--t-norm)}
::-webkit-scrollbar{width:6px;height:6px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--border);border-radius:var(--r-full)}
::-webkit-scrollbar-thumb:hover{background:var(--text-3)}

/* ══════════════════════════════════════
   AUTH SCREENS (Login / Setup)
   ══════════════════════════════════════ */
.auth-screen{
  position:fixed;inset:0;
  display:flex;align-items:center;justify-content:center;
  background:var(--bg-app);
  z-index:9000;
}

/* Background grid pattern */
.auth-screen::before{
  content:'';position:absolute;inset:0;
  background-image:
    linear-gradient(var(--border) 1px,transparent 1px),
    linear-gradient(90deg,var(--border) 1px,transparent 1px);
  background-size:48px 48px;
  opacity:.35;pointer-events:none;
}

/* Glow blob */
.auth-screen::after{
  content:'';position:absolute;
  width:600px;height:600px;
  background:radial-gradient(circle,hsla(255,82%,65%,.12) 0%,transparent 70%);
  top:-100px;left:50%;transform:translateX(-50%);
  pointer-events:none;
}

.auth-card{
  position:relative;z-index:1;
  background:var(--bg-card);
  border:1px solid var(--border);
  border-radius:var(--r-lg);
  padding:2.5rem;
  width:100%;max-width:420px;
  box-shadow:var(--sh-lg);
  backdrop-filter:blur(var(--blur));
}

.auth-logo{
  width:56px;height:56px;
  border-radius:var(--r-md);
  background:linear-gradient(135deg,var(--primary),hsl(280,85%,60%));
  display:flex;align-items:center;justify-content:center;
  color:#fff;margin:0 auto 1.5rem;
  box-shadow:0 8px 24px hsla(255,82%,65%,.35);
}
.auth-logo svg{width:28px;height:28px}

.auth-title{
  font-family:var(--font-head);font-size:1.75rem;font-weight:700;
  text-align:center;letter-spacing:-.5px;margin-bottom:.5rem;
}
.auth-sub{font-size:.9rem;color:var(--text-2);text-align:center;margin-bottom:2rem}
.auth-error{
  background:var(--danger-dim);color:var(--danger);
  border:1px solid hsla(346,82%,54%,.25);
  border-radius:var(--r-sm);padding:.6rem 1rem;
  font-size:.875rem;font-weight:500;margin-bottom:1rem;
}

/* Password toggle wrapper */
.pw-wrap{position:relative}
.pw-wrap .form-control{padding-right:2.75rem}
.pw-toggle{
  position:absolute;right:.75rem;top:50%;transform:translateY(-50%);
  background:none;border:none;color:var(--text-3);cursor:pointer;
  display:flex;align-items:center;
  transition:color var(--t-fast);
}
.pw-toggle:hover{color:var(--text-1)}
.pw-toggle svg{width:16px;height:16px}

.btn-block{width:100%;justify-content:center;margin-top:.5rem}

/* ══════════════════════════════════════
   LAYOUT
   ══════════════════════════════════════ */
.app-container{display:flex;width:100vw;min-height:100vh}

/* SIDEBAR */
.sidebar{
  width:272px;position:fixed;top:0;bottom:0;left:0;
  background:var(--bg-sidebar);
  border-right:1px solid var(--border);
  display:flex;flex-direction:column;
  padding:1.5rem 1.25rem;
  backdrop-filter:blur(var(--blur));
  z-index:200;
  transition:background var(--t-norm);
  overflow-y:auto;
}

.brand-section{
  display:flex;align-items:center;gap:.875rem;
  margin-bottom:2rem;padding-left:.25rem;
}
.brand-logo{
  width:40px;height:40px;flex-shrink:0;
  border-radius:var(--r-md);
  background:linear-gradient(135deg,var(--primary),hsl(280,85%,60%));
  display:flex;align-items:center;justify-content:center;
  color:#fff;font-family:var(--font-head);font-size:1.25rem;font-weight:800;
  box-shadow:0 4px 14px hsla(255,82%,65%,.3);
}
.brand-name{
  font-family:var(--font-head);font-size:1.1rem;font-weight:700;
  line-height:1.2;
}
.brand-user{font-size:.78rem;color:var(--text-3);margin-top:.1rem}

.nav-group-label{
  font-size:.7rem;font-weight:700;letter-spacing:.8px;text-transform:uppercase;
  color:var(--text-3);padding:.75rem .75rem .25rem;
}

.nav-list{list-style:none;display:flex;flex-direction:column;gap:.2rem;flex:1}

.nav-item{
  display:flex;align-items:center;gap:.75rem;
  padding:.7rem .875rem;border-radius:var(--r-md);
  color:var(--text-2);font-size:.9rem;font-weight:500;
  cursor:pointer;border:1px solid transparent;
  transition:all var(--t-fast);position:relative;
}
.nav-item svg{width:18px;height:18px;color:var(--text-3);flex-shrink:0;transition:color var(--t-fast)}
.nav-hint{
  margin-left:auto;font-size:.7rem;color:var(--text-3);
  background:var(--bg-card);padding:.15rem .45rem;border-radius:var(--r-full);
  border:1px solid var(--border);white-space:nowrap;
}
.nav-item:hover{color:var(--text-1);background:var(--bg-hover);border-color:var(--border)}
.nav-item:hover svg{color:var(--primary)}
.nav-item.active{
  color:#fff;
  background:linear-gradient(135deg,var(--primary),hsla(255,82%,60%,.85));
  border-color:var(--primary-h);
  box-shadow:0 4px 18px var(--primary-dim);
}
.nav-item.active svg{color:#fff}
.nav-item.active .nav-hint{background:rgba(255,255,255,.15);border-color:transparent;color:rgba(255,255,255,.75)}

.sidebar-footer{
  margin-top:auto;border-top:1px solid var(--border);
  padding-top:1.25rem;display:flex;flex-direction:column;gap:.6rem;
}
.theme-toggle-btn{
  display:flex;align-items:center;justify-content:center;gap:.5rem;
  padding:.65rem;border-radius:var(--r-md);
  background:var(--bg-card);border:1px solid var(--border);
  color:var(--text-2);font-size:.85rem;font-weight:500;cursor:pointer;
  transition:all var(--t-fast);
}
.theme-toggle-btn:hover{background:var(--bg-hover);color:var(--text-1)}
.btn-logout{
  display:flex;align-items:center;justify-content:center;gap:.5rem;
  padding:.65rem;border-radius:var(--r-md);
  background:var(--danger-dim);border:1px solid hsla(346,82%,54%,.2);
  color:var(--danger);font-size:.875rem;font-weight:600;cursor:pointer;
  transition:all var(--t-fast);
}
.btn-logout:hover{background:var(--danger);color:#fff}
.btn-logout svg{width:16px;height:16px}

/* MAIN CONTENT */
.main-content{
  margin-left:272px;flex:1;padding:2rem 2.25rem;
  min-height:100vh;display:flex;flex-direction:column;gap:0;
}

/* ══════════════════════════════════════
   TOP HEADER + FILTERS
   ══════════════════════════════════════ */
.top-header{
  display:flex;align-items:center;justify-content:space-between;
  margin-bottom:2rem;flex-wrap:wrap;gap:1rem;
}
.page-title-section{display:flex;flex-direction:column;gap:.2rem}
.page-title{font-family:var(--font-head);font-size:1.65rem;font-weight:700;letter-spacing:-.5px}
.page-subtitle{font-size:.875rem;color:var(--text-3)}

.filter-panel{
  display:flex;align-items:center;gap:.35rem;
  background:var(--bg-card);border:1px solid var(--border);
  border-radius:var(--r-md);padding:.35rem;
  backdrop-filter:blur(var(--blur));box-shadow:var(--sh-sm);
}
.filter-btn{
  padding:.4rem .85rem;border-radius:var(--r-sm);border:none;
  background:transparent;color:var(--text-2);font-size:.82rem;font-weight:500;
  cursor:pointer;transition:all var(--t-fast);white-space:nowrap;
}
.filter-btn:hover{color:var(--text-1);background:var(--bg-hover)}
.filter-btn.active{background:var(--bg-card-solid);color:var(--primary);font-weight:600;box-shadow:var(--sh-sm)}
.date-range-container{
  display:flex;align-items:center;gap:.35rem;
  border-left:1px solid var(--border);padding-left:.35rem;
}
.date-input{
  background:var(--bg-card-solid);border:1px solid var(--border);
  color:var(--text-1);font-size:.78rem;padding:.32rem .5rem;
  border-radius:var(--r-sm);cursor:pointer;font-family:var(--font-ui);
}
.date-input:focus{border-color:var(--primary)}

/* ══════════════════════════════════════
   STAT CARDS
   ══════════════════════════════════════ */
.stats-grid{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));
  gap:1.25rem;margin-bottom:1.5rem;
}
.stat-card{
  background:var(--bg-card);border:1px solid var(--border);
  border-radius:var(--r-lg);padding:1.4rem 1.5rem;
  position:relative;overflow:hidden;
  box-shadow:var(--sh-sm);
  backdrop-filter:blur(var(--blur));
  transition:transform var(--t-norm),border-color var(--t-norm),box-shadow var(--t-norm);
}
.stat-card::before{
  content:'';position:absolute;top:0;left:0;width:3px;height:100%;
  background:var(--ac,var(--primary));
}
.stat-card::after{
  content:'';position:absolute;top:-40px;right:-40px;
  width:120px;height:120px;border-radius:50%;
  background:radial-gradient(circle,hsla(var(--ac-h,255),82%,65%,.07) 0%,transparent 70%);
}
.stat-card:hover{transform:translateY(-3px);border-color:hsla(255,80%,65%,.2);box-shadow:var(--sh-md)}
.stat-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem}
.stat-title{font-size:.78rem;font-weight:600;color:var(--text-3);text-transform:uppercase;letter-spacing:.6px}
.stat-icon{
  width:36px;height:36px;border-radius:var(--r-md);
  background:var(--bg-hover);border:1px solid var(--border);
  display:flex;align-items:center;justify-content:center;
  color:var(--ac,var(--primary));
}
.stat-icon svg{width:18px;height:18px}
.stat-value{font-family:var(--font-head);font-size:1.75rem;font-weight:700;letter-spacing:-.5px;margin-bottom:.2rem}
.stat-footer{font-size:.78rem;color:var(--text-3)}

/* ══════════════════════════════════════
   CONTENT CARDS & CHARTS
   ══════════════════════════════════════ */
.dashboard-middle-row{
  display:grid;grid-template-columns:2fr 1fr;
  gap:1.25rem;margin-bottom:1.5rem;
}
.content-card{
  background:var(--bg-card);border:1px solid var(--border);
  border-radius:var(--r-lg);padding:1.5rem;
  box-shadow:var(--sh-sm);backdrop-filter:blur(var(--blur));
  display:flex;flex-direction:column;
}
.card-header{
  display:flex;justify-content:space-between;align-items:center;
  margin-bottom:1.25rem;
}
.card-title{
  font-family:var(--font-head);font-size:1.05rem;font-weight:600;
  display:flex;align-items:center;gap:.5rem;
}
.card-title svg{width:18px;height:18px;color:var(--primary)}
.chart-container{position:relative;height:280px;width:100%}

/* ══════════════════════════════════════
   TABLES
   ══════════════════════════════════════ */
.table-actions-bar{
  display:flex;justify-content:space-between;align-items:center;
  margin-bottom:1.1rem;gap:1rem;flex-wrap:wrap;
}
.search-container{position:relative;min-width:240px}
.search-input{
  width:100%;
  background:var(--bg-card);border:1px solid var(--border);
  color:var(--text-1);border-radius:var(--r-md);
  padding:.6rem 1rem .6rem 2.4rem;
  font-family:var(--font-ui);font-size:.875rem;
  transition:all var(--t-fast);
}
.search-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-dim)}
.search-input::placeholder{color:var(--text-3)}
.search-container>svg{
  position:absolute;left:.8rem;top:50%;transform:translateY(-50%);
  width:15px;height:15px;color:var(--text-3);
}
.action-buttons-group{display:flex;gap:.6rem;flex-wrap:wrap}

/* Buttons */
.btn{
  display:inline-flex;align-items:center;gap:.45rem;
  padding:.6rem 1.1rem;border-radius:var(--r-md);
  font-family:var(--font-ui);font-size:.875rem;font-weight:600;
  cursor:pointer;border:1px solid transparent;
  transition:all var(--t-fast);white-space:nowrap;
}
.btn-primary{background:var(--primary);color:#fff;box-shadow:0 4px 14px var(--primary-dim)}
.btn-primary:hover{background:var(--primary-h);transform:translateY(-1px)}
.btn-secondary{background:var(--bg-card);border-color:var(--border);color:var(--text-1)}
.btn-secondary:hover{background:var(--bg-hover);border-color:var(--text-3)}
.btn-danger{background:var(--danger);color:#fff;box-shadow:0 4px 14px var(--danger-dim)}
.btn-danger:hover{filter:brightness(1.1)}
.btn-success{background:var(--success);color:#fff}
.btn-success:hover{filter:brightness(1.1)}
.btn-small{padding:.38rem .75rem;font-size:.8rem;border-radius:var(--r-sm)}
.btn svg{width:15px;height:15px}
.btn-small svg{width:14px;height:14px}

.table-responsive{
  width:100%;overflow-x:auto;
  border:1px solid var(--border);border-radius:var(--r-md);
  background:var(--bg-card-solid);box-shadow:var(--sh-sm);
}
.custom-table{width:100%;border-collapse:collapse;font-size:.875rem;text-align:left}
.custom-table th{
  background:var(--bg-card);color:var(--text-2);font-weight:600;
  padding:.875rem 1.1rem;border-bottom:1px solid var(--border);
  font-size:.78rem;text-transform:uppercase;letter-spacing:.5px;white-space:nowrap;
}
.custom-table td{
  padding:.875rem 1.1rem;border-bottom:1px solid var(--border);
  color:var(--text-1);vertical-align:middle;
}
.custom-table tbody tr{transition:background var(--t-fast)}
.custom-table tbody tr:hover{background:var(--bg-card)}
.custom-table tbody tr:last-child td{border-bottom:none}
.text-right{text-align:right!important}
.text-center{text-align:center!important}

/* Row action buttons */
.row-actions{display:flex;gap:.4rem;justify-content:center}
.row-btn{
  background:transparent;border:none;cursor:pointer;
  padding:.32rem;border-radius:var(--r-sm);
  color:var(--text-3);display:inline-flex;align-items:center;
  transition:all var(--t-fast);
}
.row-btn svg{width:15px;height:15px}
.row-btn-edit:hover{color:var(--primary);background:var(--primary-dim)}
.row-btn-del:hover{color:var(--danger);background:var(--danger-dim)}

/* Badges */
.badge{
  display:inline-flex;align-items:center;
  padding:.2rem .55rem;border-radius:var(--r-full);
  font-size:.72rem;font-weight:700;letter-spacing:.3px;
}
.badge-admin{background:var(--primary-dim);color:var(--primary);border:1px solid hsla(255,82%,65%,.2)}
.badge-user{background:var(--bg-hover);color:var(--text-2);border:1px solid var(--border)}
.badge-income{background:var(--success-dim);color:var(--success);border:1px solid hsla(142,72%,44%,.2)}
.badge-cost{background:var(--danger-dim);color:var(--danger);border:1px solid hsla(346,82%,54%,.2)}
.badge-pay{background:var(--warning-dim);color:var(--warning);border:1px solid hsla(35,92%,50%,.2)}

/* Pagination */
.pagination-bar{
  display:flex;justify-content:space-between;align-items:center;
  padding:.875rem 1.1rem;
  background:var(--bg-card);border-top:1px solid var(--border);
  font-size:.82rem;color:var(--text-3);
}
.pg-controls{display:flex;align-items:center;gap:.4rem}
.pg-btn{
  background:var(--bg-card-solid);border:1px solid var(--border);
  color:var(--text-1);width:30px;height:30px;border-radius:var(--r-sm);
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;transition:all var(--t-fast);
}
.pg-btn:hover:not(:disabled){border-color:var(--primary);color:var(--primary)}
.pg-btn:disabled{opacity:.35;cursor:not-allowed}
.pg-btn svg{width:14px;height:14px}

/* ══════════════════════════════════════
   MODALS
   ══════════════════════════════════════ */
.modal-overlay{
  position:fixed;inset:0;
  background:rgba(4,7,18,.78);backdrop-filter:blur(10px);
  display:flex;align-items:center;justify-content:center;
  z-index:1000;opacity:0;pointer-events:none;
  transition:opacity var(--t-norm);
}
.modal-overlay.active{opacity:1;pointer-events:all}
.modal-card{
  background:var(--bg-card-solid);border:1px solid var(--border);
  border-radius:var(--r-lg);width:90%;max-width:540px;
  box-shadow:var(--sh-lg);
  transform:scale(.95);transition:transform var(--t-norm);
  overflow:hidden;max-height:90vh;display:flex;flex-direction:column;
}
.modal-card form {
  display:flex;flex-direction:column;flex:1;min-height:0;
}
.modal-overlay.active .modal-card{transform:scale(1)}
.modal-header{
  padding:1.1rem 1.4rem;border-bottom:1px solid var(--border);
  background:var(--bg-card);
  display:flex;justify-content:space-between;align-items:center;flex-shrink:0;
}
.modal-title{font-family:var(--font-head);font-size:1.1rem;font-weight:600}
.modal-close-btn{
  background:none;border:none;color:var(--text-3);cursor:pointer;
  padding:.2rem;border-radius:var(--r-sm);
  display:flex;align-items:center;transition:all var(--t-fast);
}
.modal-close-btn:hover{color:var(--text-1);background:var(--border)}
.modal-close-btn svg{width:18px;height:18px}
.modal-body{padding:1.4rem;overflow-y:auto;flex:1;min-height:0;}
.modal-footer{
  padding:1.1rem 1.4rem;border-top:1px solid var(--border);
  background:var(--bg-card);
  display:flex;justify-content:flex-end;gap:.6rem;flex-shrink:0;
}

/* FORMS */
.form-group{display:flex;flex-direction:column;gap:.35rem;margin-bottom:1.1rem}
.form-group:last-child{margin-bottom:0}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.form-label{font-size:.82rem;font-weight:600;color:var(--text-2)}
.form-control{
  background:var(--bg-card);border:1px solid var(--border);
  color:var(--text-1);border-radius:var(--r-md);
  padding:.65rem .9rem;font-family:var(--font-ui);font-size:.875rem;
  transition:all var(--t-fast);width:100%;
}
.form-control:focus{border-color:var(--primary);background:var(--bg-card-solid);box-shadow:0 0 0 3px var(--primary-dim)}
.form-control::placeholder{color:var(--text-3);opacity:.65}
.form-control option{background:var(--bg-card-solid)}
textarea.form-control{resize:vertical;min-height:72px}

/* Calc / readonly field */
.calc-field{
  background:var(--bg-app)!important;color:var(--success)!important;
  font-weight:700!important;font-size:1.05rem!important;
  border-style:dashed!important;cursor:default!important;
}

/* Profit hint box */
.profit-hint-box{
  background:var(--primary-dim);border:1px solid hsla(255,82%,65%,.2);
  border-radius:var(--r-md);padding:.7rem 1rem;
  display:flex;gap:1.5rem;flex-wrap:wrap;
  font-size:.82rem;font-weight:600;color:var(--primary);
}

/* ══════════════════════════════════════
   DEBT DETAIL PANEL
   ══════════════════════════════════════ */
.debt-detail-container{
  display:none;margin-top:2rem;padding-top:2rem;
  border-top:1px solid var(--border);
  animation:fadeUp .25s var(--ease) forwards;
}
.debt-detail-container.active{display:block}
.supplier-badge{
  background:var(--primary-dim);color:var(--primary);
  padding:.2rem .65rem;border-radius:var(--r-sm);
  font-size:.875rem;font-weight:600;
  border:1px solid hsla(255,82%,65%,.2);
}

/* ══════════════════════════════════════
   VIEW TRANSITIONS
   ══════════════════════════════════════ */
.app-view{display:none;flex-direction:column;gap:0}
.app-view.active{display:flex;animation:fadeUp .22s var(--ease) forwards}
@keyframes fadeUp{
  from{opacity:0;transform:translateY(10px)}
  to{opacity:1;transform:translateY(0)}
}

/* ══════════════════════════════════════
   EXCEL DROP ZONE
   ══════════════════════════════════════ */
.excel-drop-zone{
  border:2px dashed var(--border);background:var(--bg-card);
  padding:2rem 1.5rem;border-radius:var(--r-lg);text-align:center;
  cursor:pointer;transition:all var(--t-norm);
  display:flex;flex-direction:column;align-items:center;gap:.75rem;
}
.excel-drop-zone:hover,.excel-drop-zone.dragover{
  border-color:var(--primary);background:var(--primary-dim);
}
.excel-drop-zone svg{width:40px;height:40px;color:var(--primary)}
.excel-drop-title{font-weight:600;font-size:.95rem}
.excel-drop-sub{font-size:.78rem;color:var(--text-3)}

/* ══════════════════════════════════════
   TOAST NOTIFICATIONS
   ══════════════════════════════════════ */
.toast-container{
  position:fixed;bottom:1.75rem;right:1.75rem;
  display:flex;flex-direction:column;gap:.6rem;z-index:9999;
}
.toast{
  background:var(--bg-card-solid);border:1px solid var(--border);
  box-shadow:var(--sh-lg);border-radius:var(--r-md);
  padding:.875rem 1.1rem;display:flex;align-items:center;gap:.65rem;
  min-width:280px;max-width:420px;position:relative;overflow:hidden;
  animation:toastIn .3s cubic-bezier(.16,1,.3,1) forwards;
}
.toast::before{
  content:'';position:absolute;left:0;top:0;bottom:0;width:3px;
  background:var(--toast-c,var(--primary));
}
.toast svg{width:16px;height:16px;color:var(--toast-c,var(--primary));flex-shrink:0}
.toast.success{--toast-c:var(--success)}
.toast.error{--toast-c:var(--danger)}
.toast.info{--toast-c:var(--info)}
.toast-msg{font-size:.875rem;font-weight:500}
@keyframes toastIn{
  from{transform:translateY(12px);opacity:0}
  to{transform:translateY(0);opacity:1}
}

/* ══════════════════════════════════════
   ROLE VISIBILITY
   ══════════════════════════════════════ */
/* Hidden by default, revealed via JS for admins */
body:not(.is-admin) .admin-only{display:none!important}



/* ══════════════════════════════════════
   RESPONSIVE
   ══════════════════════════════════════ */
@media(max-width:900px){
  .dashboard-middle-row{grid-template-columns:1fr}
}

@media(max-width:768px){
  body{padding-bottom:64px}
  .sidebar{
    width:100%;height:60px;
    top:auto;bottom:0;left:0;right:0;
    flex-direction:row;padding:.4rem .75rem;
    border-right:none;border-top:1px solid var(--border);
    justify-content:space-around;overflow:visible;
  }
  .brand-section,.nav-group-label,.nav-hint,.sidebar-footer{display:none}
  .nav-list{flex-direction:row;width:100%;justify-content:space-around;gap:0}
  .nav-item{
    flex-direction:column;gap:.15rem;font-size:.65rem;
    padding:.4rem .5rem;flex:1;justify-content:center;text-align:center;
  }
  .nav-item svg{width:20px;height:20px}
  .nav-item span{font-size:.65rem}
  .main-content{margin-left:0;padding:1.25rem .875rem}
  .top-header{flex-direction:column;align-items:flex-start}
  .filter-panel{width:100%;overflow-x:auto;flex-wrap:nowrap}
  .form-row{grid-template-columns:1fr}
  .stats-grid{grid-template-columns:1fr 1fr}
}

@media(max-width:480px){
  .stats-grid{grid-template-columns:1fr}
}
