/* ═══════════════════════════════════════════════════════════
   GehaltsManager — CSS (scoped for OKYU HRM integration)
   All gm-* prefixed classes are safe. Global resets removed.
   ═══════════════════════════════════════════════════════════ */

/* ── Scoped CSS Variables for GehaltsManager ── */
.gm-body {
  --bg:#f0f2f5; --sf:#ffffff; --sf2:#f7f8fa; --bd:#e2e4e9;
  --tx:#1a1d26; --tx2:#6b7280; --tx3:#9ca3af;
  --ac:#3b7ddd; --acG:rgba(59,125,221,0.1);
  --ok:#10b981; --okB:rgba(16,185,129,0.08);
  --wn:#d97706; --wnB:rgba(217,119,6,0.08);
  --no:#ef4444; --noB:rgba(239,68,68,0.08);
  --font:'DM Sans',system-ui,sans-serif;
  --mono:'JetBrains Mono',monospace;
  --radius:10px;
  --shadow:0 1px 3px rgba(0,0,0,0.06);
  --shadow-lg:0 16px 48px rgba(0,0,0,0.12);
  font-family: var(--font);
  font-size: 13px;
  color: var(--tx);
}

/* ── Dark Theme (inherits from OKYU HRM body[data-theme='dark']) ── */
[data-theme="dark"] .gm-body {
  --bg:#0f1117; --sf:#1a1d26; --sf2:#22252f; --bd:#2d3140;
  --tx:#e5e7eb; --tx2:#9ca3af; --tx3:#6b7280;
  --shadow:0 1px 3px rgba(0,0,0,0.3);
  --shadow-lg:0 16px 48px rgba(0,0,0,0.5);
}

/* ── App Layout ── */
.gm-app{
  display:flex;
  height:100vh;
  overflow:hidden;
  position:relative;
  background:var(--bg);
  color:var(--tx);
}

/* ── Sidebar ── */
.gm-sidebar{
  width:220px;
  background:var(--sf);
  border-right:1px solid var(--bd);
  display:flex;
  flex-direction:column;
  flex-shrink:0;
  height:100vh;
  overflow:hidden;
  z-index:90;
  transition:transform 0.25s cubic-bezier(0.4,0,0.2,1);
}

.gm-sidebar-header{
  padding:16px 14px;
  border-bottom:1px solid var(--bd);
  flex-shrink:0;
}

.gm-sidebar-title{
  display:flex;
  justify-content:space-between;
  align-items:center;
}

.gm-sidebar-title-text{
  font-size:14px;
  font-weight:700;
  cursor:pointer;
}

.gm-sidebar-close{
  border:none;
  background:transparent;
  color:var(--tx2);
  font-size:18px;
  cursor:pointer;
  padding:4px;
  line-height:1;
}

.gm-sidebar-user{
  font-size:9px;
  color:var(--tx3);
  margin-top:2px;
}

.gm-sidebar-monat{
  width:100%;
  margin-top:8px;
  font-weight:600;
  font-size:12px;
  background:var(--sf2);
  border:1px solid var(--bd);
  color:var(--tx);
  padding:5px 9px;
  border-radius:5px;
  font-family:var(--font);
  cursor:pointer;
  outline:none;
}

.gm-logo{
  display:inline-flex;
  gap:0;
  font-family:Nunito,'Segoe UI',system-ui,Arial,sans-serif;
  font-weight:900;
  font-style:italic;
  font-size:14px;
  letter-spacing:-0.3px;
  margin-top:4px;
}

/* ── Navigation ── */
.gm-nav{
  flex:1;
  overflow:hidden auto;
}

.gm-nav-btn{
  display:flex;
  align-items:center;
  gap:10px;
  width:100%;
  padding:10px 14px;
  border:none;
  border-left:3px solid transparent;
  background:transparent;
  color:var(--tx2);
  cursor:pointer;
  font-family:var(--font);
  font-size:12px;
  font-weight:400;
  text-align:left;
  transition:all 0.15s ease;
}

.gm-nav-btn:hover{
  background:var(--sf2);
  color:var(--tx);
}

.gm-nav-btn.active{
  background:var(--acG);
  color:var(--ac);
  font-weight:600;
  border-left-color:var(--ac);
}

.gm-nav-btn span{font-size:14px}

/* ── Sidebar Footer ── */
.gm-sidebar-footer{
  flex-shrink:0;
  padding:10px 14px;
  border-top:1px solid var(--bd);
  display:flex;
  flex-direction:column;
  gap:6px;
}

.gm-sidebar-footer button{
  padding:6px 12px;
  border-radius:6px;
  font-size:10px;
  font-weight:600;
  font-family:var(--font);
  cursor:pointer;
  border:1px solid var(--bd);
  transition:all 0.12s;
  background:transparent;
  color:var(--tx2);
  width:100%;
}
.gm-sidebar-footer button:hover{background:var(--sf2);color:var(--tx)}

.gm-version{
  font-size:8px;
  color:var(--tx3);
  text-align:center;
}

/* ── Main Area ── */
.gm-main{
  flex:1;
  display:flex;
  flex-direction:column;
  overflow:hidden;
}

/* ── Mobile Header ── */
.gm-mobile-header{
  display:none;
  align-items:center;
  padding:max(8px,env(safe-area-inset-top)) 12px 8px;
  border-bottom:1px solid var(--bd);
  background:var(--sf);
  gap:8px;
  position:sticky;top:0;
  z-index:20;
  user-select:none;
}

.gm-hamburger{
  border:none;
  background:transparent;
  color:var(--tx);
  font-size:20px;
  cursor:pointer;
  padding:8px 12px;
  margin:-4px;
  -webkit-tap-highlight-color:transparent;
  touch-action:manipulation;
  min-width:44px;
  min-height:44px;
  display:flex;
  align-items:center;
  justify-content:center;
}

.gm-mobile-title{
  font-size:13px;
  font-weight:700;
  flex:1;
}

.gm-mobile-monat{
  background:var(--sf2);
  border:1px solid var(--bd);
  color:var(--tx);
  padding:4px 6px;
  border-radius:5px;
  font-size:10px;
  font-family:var(--font);
  cursor:pointer;
  outline:none;
}

/* ── Content Body ── */
.gm-body{
  padding:20px;
  max-width:1400px;
  flex:1;
  overflow:auto;
}

/* ── Cards ── */
.gm-card{
  background:var(--sf);
  border:1px solid var(--bd);
  border-radius:var(--radius);
  padding:16px;
  margin-bottom:12px;
  box-shadow:var(--shadow);
  transition:box-shadow 0.2s,transform 0.2s;
}

.gm-card:hover{
  box-shadow:0 4px 12px rgba(0,0,0,0.08);
}

/* ── KPI Cards ── */
.gm-kpi-row{
  display:flex;
  gap:8px;
  margin-bottom:12px;
  flex-wrap:wrap;
}

.gm-kpi{
  flex:1 1 140px;
  background:var(--sf);
  border:1px solid var(--bd);
  border-radius:8px;
  padding:12px 14px;
  border-left:3px solid var(--ac);
  animation:fadeInUp 0.4s ease both;
  box-shadow:var(--shadow);
  transition:transform 0.15s,box-shadow 0.15s;
}

.gm-kpi:hover{
  transform:translateY(-2px);
  box-shadow:0 6px 16px rgba(0,0,0,0.1);
}

.gm-kpi-label{
  font-size:9px;
  color:var(--tx2);
  text-transform:uppercase;
  letter-spacing:0.04em;
}

.gm-kpi-value{
  font-size:18px;
  font-weight:700;
  margin-top:2px;
  font-family:var(--mono);
}

.gm-kpi-sub{
  font-size:9px;
  color:var(--tx3);
  margin-top:1px;
}

/* ── Section Title ── */
.gm-title{
  font-size:11px;
  font-weight:600;
  color:var(--tx2);
  text-transform:uppercase;
  letter-spacing:0.06em;
  margin-bottom:10px;
}

/* ── Tables ── */
.gm-table-wrap{
  overflow:auto;
  border-radius:var(--radius);
  background:var(--sf);
  border:1px solid var(--bd);
}

.gm-table{
  width:100%;
  border-collapse:collapse;
  font-size:11.5px;
}

.gm-table th{
  padding:7px 9px;
  text-align:left;
  border-bottom:1px solid var(--bd);
  color:var(--tx2);
  font-weight:600;
  font-size:9.5px;
  text-transform:uppercase;
  letter-spacing:0.04em;
  position:sticky;top:0;
  background:var(--sf);
  white-space:nowrap;
  z-index:1;
}

.gm-table td{
  padding:6px 9px;
  border-bottom:1px solid var(--bd);
  white-space:nowrap;
}

.gm-table tr:hover td{
  background:var(--sf2);
}

.gm-table .mono{font-family:var(--mono)}
.gm-table .bold{font-weight:700}
.gm-table .right{text-align:right}
.gm-table .center{text-align:center}

.gm-table .total-row{
  background:var(--sf2);
  border-top:2px solid var(--ac);
}

.gm-table .total-row td{font-weight:700}

/* ── Badges ── */
.gm-badge{
  display:inline-block;
  padding:2px 6px;
  border-radius:4px;
  font-size:9.5px;
  font-weight:600;
}

.gm-badge-ac{background:var(--acG);color:var(--ac)}
.gm-badge-ok{background:var(--okB);color:var(--ok)}
.gm-badge-wn{background:var(--wnB);color:var(--wn)}
.gm-badge-no{background:var(--noB);color:var(--no)}

/* ── Progress Bar ── */
.gm-progress{
  display:flex;
  gap:2px;
  align-items:center;
}

.gm-progress-bar{
  flex:1;
  height:6px;
  border-radius:3px;
  background:var(--sf2);
  overflow:hidden;
}

.gm-progress-fill{
  height:100%;
  border-radius:3px;
  background:var(--ok);
  transition:width 0.6s cubic-bezier(0.4,0,0.2,1);
}

.gm-progress-text{
  font-family:var(--mono);
  font-size:8px;
  color:var(--tx3);
  min-width:28px;
  text-align:right;
}

/* ── Status Cards (Überweisungen / Bar) ── */
.gm-status-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  margin-bottom:16px;
}

.gm-status-card{
  background:var(--sf);
  border:1px solid var(--bd);
  border-radius:var(--radius);
  padding:12px 16px;
  box-shadow:var(--shadow);
}

.gm-status-header{
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-bottom:8px;
}

.gm-status-title{font-size:11px;font-weight:700}
.gm-status-amount{
  font-family:var(--mono);
  font-size:13px;
  font-weight:700;
}

.gm-status-bar{
  display:flex;
  gap:6px;
  margin-bottom:6px;
}

.gm-status-legend{
  display:flex;
  justify-content:space-between;
  font-size:9px;
}

/* ── Grid Layouts ── */
.gm-grid-2{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
}

/* ── Charts ── */
.gm-chart{height:220px;position:relative}
.gm-chart canvas{width:100%!important;height:100%!important}

/* ── Buttons ── */
.gm-btn{
  padding:6px 12px;
  border-radius:6px;
  font-size:11.5px;
  font-weight:600;
  font-family:var(--font);
  cursor:pointer;
  border:none;
  transition:all 0.15s ease;
  display:inline-flex;
  align-items:center;
  gap:4px;
}

.gm-btn:active{transform:scale(0.97)}

.gm-btn-primary{background:var(--ac);color:#fff}
.gm-btn-primary:hover{filter:brightness(1.1)}
.gm-btn-success{background:var(--ok);color:#000}
.gm-btn-danger{background:var(--no);color:#fff}
.gm-btn-ghost{
  background:transparent;
  border:1px solid var(--bd);
  color:var(--tx2);
}
.gm-btn-ghost:hover{background:var(--sf2);color:var(--tx)}

/* ── Pill Tab Toggle ── */
.gm-tab-toggle{
  display:flex;
  border-radius:5px;
  overflow:hidden;
  border:1px solid var(--bd);
}

.gm-tab-toggle button{
  padding:4px 10px;
  border:none;
  cursor:pointer;
  font-family:var(--font);
  font-size:10px;
  font-weight:400;
  background:transparent;
  color:var(--tx2);
  transition:all 0.12s;
}

.gm-tab-toggle button.active{
  background:var(--ac);
  color:#fff;
  font-weight:700;
}

/* ── Inputs ── */
.gm-input,.gm-select{
  background:var(--sf2);
  border:1px solid var(--bd);
  color:var(--tx);
  padding:5px 9px;
  border-radius:5px;
  font-size:11.5px;
  font-family:var(--font);
  outline:none;
  transition:border-color 0.15s;
}
.gm-input:focus,.gm-select:focus{
  border-color:var(--ac);
  box-shadow:0 0 0 3px var(--acG);
}

.gm-editable{
  background:rgba(79,143,247,0.06);
  border:1px solid rgba(79,143,247,0.25);
  color:var(--tx);
  padding:3px 6px;
  border-radius:4px;
  font-size:11px;
  font-family:var(--mono);
  width:72px;
  outline:none;
  text-align:right;
}

/* ── Modal ── */
.gm-modal-overlay{
  position:fixed;inset:0;
  background:rgba(0,0,0,0.55);
  z-index:999;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:16px;
  opacity:0;
  transition:opacity 0.2s;
  pointer-events:none;
}

.gm-modal-overlay.show{
  opacity:1;
  pointer-events:auto;
}

.gm-modal{
  background:var(--sf);
  border:1px solid var(--bd);
  border-radius:14px;
  width:100%;
  max-width:700px;
  max-height:85vh;
  overflow:auto;
  box-shadow:var(--shadow-lg);
  transform:translateY(20px) scale(0.97);
  transition:transform 0.25s cubic-bezier(0.4,0,0.2,1);
}

.gm-modal-overlay.show .gm-modal{
  transform:translateY(0) scale(1);
}

.gm-modal-header{
  padding:16px 20px;
  border-bottom:1px solid var(--bd);
  display:flex;
  align-items:center;
  justify-content:space-between;
  position:sticky;top:0;
  background:var(--sf);
  z-index:1;
}

.gm-modal-body{padding:16px 20px}

/* ── Mobile Sidebar Overlay ── */
.gm-overlay{
  position:fixed;inset:0;
  background:rgba(0,0,0,0.4);
  z-index:99;
  opacity:0;
  transition:opacity 0.2s;
  pointer-events:none;
}
.gm-overlay.show{opacity:1;pointer-events:auto}

.gm-sidebar-mobile{
  position:fixed;
  top:0;left:0;
  width:260px;
  background:var(--sf);
  border-right:1px solid var(--bd);
  display:flex;
  flex-direction:column;
  height:100vh;
  overflow:hidden;
  z-index:100;
  box-shadow:4px 0 24px rgba(0,0,0,0.3);
  transform:translateX(-100%);
  transition:transform 0.25s cubic-bezier(0.4,0,0.2,1);
}
.gm-sidebar-mobile.open{transform:translateX(0)}

/* ── Birthday Card ── */
.gm-birthday-card{
  background:rgba(251,191,36,0.02);
  border:1px solid rgba(251,191,36,0.15);
  border-radius:var(--radius);
  padding:10px 14px;
  margin-bottom:16px;
}

.gm-birthday-header{
  display:flex;
  align-items:center;
  gap:8px;
  margin-bottom:8px;
}

.gm-birthday-title{
  font-size:12px;
  font-weight:700;
  color:var(--wn);
}

.gm-birthday-count{
  font-size:9px;
  color:var(--tx3);
}

.gm-birthday-item{
  display:flex;
  align-items:center;
  gap:8px;
  padding:6px 10px;
  margin-bottom:4px;
  border-radius:6px;
  transition:background 0.15s;
}
.gm-birthday-item:hover{background:var(--sf2)}

.gm-birthday-name{font-size:11px;font-weight:600}
.gm-birthday-detail{font-size:9px;color:var(--tx3)}
.gm-birthday-days{
  font-size:10px;
  font-weight:700;
  color:var(--tx2);
  text-align:right;
  white-space:nowrap;
}

/* ── Collapsible ── */
.gm-collapsible-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  width:100%;
  background:transparent;
  border:none;
  cursor:pointer;
  font-family:var(--font);
  padding:0;
  color:var(--tx);
}

.gm-collapsible-body{
  max-height:0;
  overflow:hidden;
  transition:max-height 0.3s ease;
}
.gm-collapsible-body.open{max-height:2000px}

/* ── Loading State ── */
.gm-loading{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  height:300px;
  gap:12px;
  color:var(--tx2);
}

.gm-spinner{
  width:32px;height:32px;
  border:3px solid var(--bd);
  border-top-color:var(--ac);
  border-radius:50%;
  animation:spin 0.8s linear infinite;
}

/* ── Empty State ── */
.gm-empty{
  text-align:center;
  padding:48px 24px;
  color:var(--tx3);
}
.gm-empty-icon{font-size:32px;margin-bottom:8px}
.gm-empty-text{font-size:13px}

/* ── Toast / Notification ── */
.gm-toast{
  position:fixed;
  bottom:24px;right:24px;
  background:var(--sf);
  border:1px solid var(--bd);
  border-radius:8px;
  padding:10px 16px;
  font-size:12px;
  box-shadow:var(--shadow-lg);
  z-index:9999;
  transform:translateY(100px);
  opacity:0;
  transition:all 0.3s ease;
}
.gm-toast.show{transform:translateY(0);opacity:1}

/* ── Pill Buttons ── */
.gm-pill{
  padding:3px 7px;
  border-radius:5px;
  font-size:9px;
  font-weight:600;
  cursor:pointer;
  border:none;
  font-family:var(--font);
  display:inline-flex;
  align-items:center;
  gap:3px;
  transition:filter 0.12s;
}
.gm-pill:hover{filter:brightness(0.92)}

/* ── Dot Indicator ── */
.gm-dot{
  display:inline-block;
  width:7px;height:7px;
  border-radius:2px;
  margin-right:6px;
}

/* ── Color Chips ── */
.color-ac{color:var(--ac)}
.color-ok{color:var(--ok)}
.color-wn{color:var(--wn)}
.color-no{color:var(--no)}
.bg-ac{background:var(--ac)}
.bg-ok{background:var(--ok)}
.bg-wn{background:var(--wn)}
.bg-no{background:var(--no)}

/* ═══ Animations ═══ */
@keyframes fadeInUp{
  from{opacity:0;transform:translateY(12px)}
  to{opacity:1;transform:translateY(0)}
}

@keyframes spin{to{transform:rotate(360deg)}}

@keyframes fadeIn{
  from{opacity:0}
  to{opacity:1}
}

.anim-fade{animation:fadeIn 0.3s ease both}
.anim-up{animation:fadeInUp 0.4s ease both}

/* ═══ Responsive ═══ */
@media(max-width:767px){
  .gm-sidebar{display:none!important}
  .gm-mobile-header{display:flex!important}
  .gm-body{padding:12px!important}
  .gm-status-grid{grid-template-columns:1fr}
  .gm-grid-2{grid-template-columns:1fr}
  .gm-kpi{flex:1 1 100%}
  /* Chart grid responsive */
  [style*="grid-template-columns: 1fr 1fr"]{grid-template-columns:1fr!important}
}

@media(min-width:768px){
  .gm-sidebar-mobile{display:none!important}
  .gm-overlay{display:none!important}
}

/* ── Scrollbar ── */
::-webkit-scrollbar{width:6px;height:6px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--bd);border-radius:3px}
::-webkit-scrollbar-thumb:hover{background:var(--tx3)}
