:root {
  --bg: #f3f6fb;
  --surface: #ffffff;
  --surface-2: #f8fafc;
  --text: #0f172a;
  --muted: #64748b;
  --line: #e2e8f0;
  --primary: #0f766e;
  --primary-dark: #115e59;
  --primary-soft: #ccfbf1;
  --success: #15803d;
  --warning: #b45309;
  --danger: #b91c1c;
  --info: #1d4ed8;
  --shadow: 0 18px 50px rgba(15, 23, 42, .08);
  --radius: 16px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  min-height: 100vh;
  font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  background: var(--bg);
  color: var(--text);
}
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
.hidden { display: none !important; }

.auth-shell {
  min-height: 100vh;
  display: grid;
  grid-template-columns: 1.2fr .8fr;
  align-items: center;
  gap: 64px;
  padding: 7vw;
  background:
    radial-gradient(circle at 15% 20%, rgba(20, 184, 166, .22), transparent 32%),
    linear-gradient(135deg, #0f172a, #134e4a);
}
.auth-brand { color: white; display: flex; align-items: center; gap: 20px; }
.auth-brand h1 { margin: 0 0 10px; font-size: clamp(30px, 4vw, 58px); line-height: 1.05; }
.auth-brand p { margin: 0; color: #cbd5e1; font-size: 18px; }
.brand-mark {
  width: 76px; height: 76px; border-radius: 22px;
  display: grid; place-items: center;
  font-weight: 800; font-size: 24px;
  color: #0f172a; background: #5eead4;
  box-shadow: 0 20px 40px rgba(0,0,0,.2);
}
.brand-mark.small { width: 42px; height: 42px; border-radius: 12px; font-size: 14px; }
.auth-card {
  width: min(460px, 100%); margin-left: auto;
  background: rgba(255,255,255,.98); border-radius: 24px; padding: 28px;
  box-shadow: 0 30px 80px rgba(0,0,0,.28);
}
.auth-tabs { display: grid; grid-template-columns: 1fr 1fr; background: var(--surface-2); padding: 4px; border-radius: 12px; margin-bottom: 24px; }
.auth-tab { border: 0; background: transparent; padding: 12px; border-radius: 9px; color: var(--muted); font-weight: 700; }
.auth-tab.active { background: white; color: var(--text); box-shadow: 0 4px 12px rgba(15,23,42,.08); }
.auth-form { display: grid; gap: 16px; }
label { display: grid; gap: 7px; font-weight: 600; font-size: 14px; color: #334155; }
input, select, textarea {
  width: 100%; border: 1px solid var(--line); border-radius: 11px;
  background: white; padding: 12px 13px; color: var(--text); outline: none;
}
input:focus, select:focus, textarea:focus { border-color: #14b8a6; box-shadow: 0 0 0 3px rgba(20,184,166,.12); }
textarea { min-height: 90px; resize: vertical; }
.form-note { margin: 0; font-size: 13px; color: var(--muted); }
.demo-box { display: grid; gap: 4px; padding: 14px; border-radius: 12px; background: #f1f5f9; color: #475569; font-size: 12px; }
.demo-box strong { color: #0f172a; margin-bottom: 3px; }

.btn { border: 0; border-radius: 10px; padding: 10px 14px; font-weight: 700; transition: .18s ease; }
.btn:hover { transform: translateY(-1px); }
.btn-primary { background: var(--primary); color: white; }
.btn-primary:hover { background: var(--primary-dark); }
.btn-secondary { background: #e2e8f0; color: #334155; }
.btn-success { background: #dcfce7; color: #166534; }
.btn-danger { background: #fee2e2; color: #991b1b; }
.btn-warning { background: #fef3c7; color: #92400e; }
.btn-ghost { background: transparent; color: #cbd5e1; border: 1px solid rgba(255,255,255,.13); }
.btn-block { width: 100%; }
.btn-sm { padding: 7px 10px; font-size: 12px; }
.icon-btn { border: 0; width: 40px; height: 40px; border-radius: 12px; background: #f1f5f9; display: grid; place-items: center; position: relative; }
.badge-dot { position: absolute; right: 8px; top: 7px; width: 7px; height: 7px; border-radius: 99px; background: #ef4444; }

.app-shell { min-height: 100vh; display: grid; grid-template-columns: 270px minmax(0, 1fr); }
.sidebar {
  height: 100vh; position: sticky; top: 0; padding: 22px 16px;
  display: flex; flex-direction: column; color: white; background: #0f172a;
  z-index: 20;
}
.sidebar-brand { display: flex; align-items: center; gap: 12px; padding: 0 8px 20px; border-bottom: 1px solid rgba(255,255,255,.08); }
.sidebar-brand div:last-child { display: grid; gap: 3px; }
.sidebar-brand span { color: #94a3b8; font-size: 12px; }
.nav-list { padding: 18px 0; display: grid; gap: 5px; overflow: auto; }
.nav-item {
  display: flex; align-items: center; gap: 12px; border: 0; width: 100%;
  padding: 11px 12px; border-radius: 11px; color: #cbd5e1; background: transparent; text-align: left;
}
.nav-item:hover, .nav-item.active { background: rgba(45,212,191,.13); color: #5eead4; }
.nav-item .nav-icon { width: 22px; text-align: center; }
.sidebar-footer { margin-top: auto; border-top: 1px solid rgba(255,255,255,.08); padding-top: 16px; display: grid; gap: 14px; }
.user-mini { display: flex; gap: 10px; align-items: center; }
.user-mini > div:last-child { display: grid; gap: 2px; }
.user-mini span { color: #94a3b8; font-size: 12px; }
.avatar { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 12px; background: #ccfbf1; color: #115e59; font-weight: 800; }

.main-content { min-width: 0; }
.topbar {
  height: 80px; padding: 0 30px; display: flex; align-items: center; justify-content: space-between;
  background: rgba(255,255,255,.92); border-bottom: 1px solid var(--line); position: sticky; top: 0; z-index: 10;
  backdrop-filter: blur(10px);
}
.topbar h2 { margin: 0; font-size: 21px; }
.topbar p { margin: 4px 0 0; color: var(--muted); font-size: 12px; }
.top-actions { display: flex; align-items: center; gap: 10px; }
.page-content { padding: 28px 30px 48px; max-width: 1600px; margin: 0 auto; }
.mobile-only { display: none; }

.grid { display: grid; gap: 18px; }
.grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.grid-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }

.card { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: 0 8px 24px rgba(15,23,42,.04); }
.card-header { padding: 18px 20px; display: flex; align-items: center; justify-content: space-between; gap: 14px; border-bottom: 1px solid var(--line); }
.card-header h3 { margin: 0; font-size: 16px; }
.card-header p { margin: 5px 0 0; color: var(--muted); font-size: 12px; }
.card-body { padding: 20px; }
.metric-card { padding: 18px; display: flex; gap: 14px; align-items: center; }
.metric-icon { width: 48px; height: 48px; display: grid; place-items: center; border-radius: 14px; font-size: 22px; background: #f1f5f9; }
.metric-card span { color: var(--muted); font-size: 12px; }
.metric-card strong { display: block; font-size: 24px; margin-top: 5px; }
.metric-card small { display: block; margin-top: 3px; color: var(--muted); }
.section-gap { margin-top: 20px; }

.table-wrap { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; font-size: 13px; }
th, td { padding: 12px 14px; text-align: left; border-bottom: 1px solid var(--line); white-space: nowrap; }
th { color: #475569; background: #f8fafc; font-size: 11px; text-transform: uppercase; letter-spacing: .04em; }
tbody tr:hover { background: #f8fafc; }

.status { display: inline-flex; align-items: center; gap: 6px; padding: 5px 9px; border-radius: 999px; font-size: 11px; font-weight: 700; }
.status::before { content: ""; width: 6px; height: 6px; border-radius: 99px; background: currentColor; }
.status.success { color: var(--success); background: #dcfce7; }
.status.warning { color: var(--warning); background: #fef3c7; }
.status.danger { color: var(--danger); background: #fee2e2; }
.status.info { color: var(--info); background: #dbeafe; }
.status.neutral { color: #475569; background: #e2e8f0; }

.toolbar { display: flex; gap: 10px; justify-content: space-between; align-items: center; flex-wrap: wrap; margin-bottom: 16px; }
.toolbar-left, .toolbar-right { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.search { min-width: 220px; }

.quick-list { display: grid; gap: 10px; }
.quick-item { display: flex; gap: 12px; justify-content: space-between; align-items: center; padding: 13px; border-radius: 12px; background: #f8fafc; border: 1px solid var(--line); }
.quick-item-main { display: flex; align-items: center; gap: 11px; }
.quick-item strong { display: block; font-size: 13px; }
.quick-item span { display: block; font-size: 11px; color: var(--muted); margin-top: 3px; }

.meal-grid { display: grid; grid-template-columns: 130px repeat(3, minmax(120px, 1fr)); border: 1px solid var(--line); border-radius: 14px; overflow: hidden; }
.meal-grid > div { padding: 12px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.meal-grid > div:nth-child(4n) { border-right: 0; }
.meal-grid .head { background: #f8fafc; font-weight: 700; font-size: 12px; }
.choice { display: flex; gap: 8px; flex-wrap: wrap; }
.choice label { display: flex; align-items: center; gap: 5px; font-size: 12px; font-weight: 500; }
.choice input { width: auto; }

.calendar { display: grid; grid-template-columns: repeat(7, minmax(95px, 1fr)); border: 1px solid var(--line); border-radius: 14px; overflow: hidden; }
.calendar-head { padding: 10px; text-align: center; background: #f8fafc; font-size: 11px; font-weight: 700; border-right: 1px solid var(--line); }
.calendar-day { min-height: 105px; padding: 9px; border-right: 1px solid var(--line); border-top: 1px solid var(--line); background: white; }
.calendar-day.muted { background: #f8fafc; color: #94a3b8; }
.day-num { font-size: 12px; font-weight: 700; margin-bottom: 7px; }
.calendar-event { padding: 5px 6px; border-radius: 6px; font-size: 9px; margin-top: 4px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.calendar-event.approved { background: #dcfce7; color: #166534; }
.calendar-event.pending { background: #fef3c7; color: #92400e; }
.calendar-event.report { background: #fee2e2; color: #991b1b; }

.laundry-board { display: grid; grid-template-columns: 110px repeat(3, minmax(160px, 1fr)); border: 1px solid var(--line); border-radius: 14px; overflow: hidden; }
.laundry-board > div { min-height: 58px; padding: 10px; border-bottom: 1px solid var(--line); border-right: 1px solid var(--line); }
.laundry-board .head { background: #f8fafc; min-height: auto; font-size: 11px; font-weight: 700; }
.slot.free { display: grid; place-items: center; color: var(--primary); font-weight: 700; background: #f0fdfa; cursor: pointer; }
.slot.busy { background: #f8fafc; font-size: 11px; }
.slot.busy strong { display: block; margin-bottom: 4px; }

.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.form-grid .span-2 { grid-column: span 2; }
.summary-strip { display: flex; justify-content: space-between; gap: 12px; padding: 14px 16px; border-radius: 13px; background: #f0fdfa; border: 1px solid #99f6e4; }
.summary-strip strong { color: #115e59; }
.empty { text-align: center; padding: 36px 16px; color: var(--muted); }

.progress { height: 9px; border-radius: 99px; background: #e2e8f0; overflow: hidden; }
.progress > span { display: block; height: 100%; background: var(--primary); border-radius: inherit; }
.legend { display: flex; gap: 14px; flex-wrap: wrap; font-size: 11px; color: var(--muted); }
.legend i { width: 9px; height: 9px; display: inline-block; border-radius: 3px; margin-right: 5px; }

.modal-backdrop { position: fixed; inset: 0; z-index: 100; display: grid; place-items: center; padding: 20px; background: rgba(15,23,42,.55); }
.modal { width: min(650px, 100%); max-height: 88vh; overflow: auto; background: white; border-radius: 20px; box-shadow: var(--shadow); }
.modal-header { padding: 18px 20px; border-bottom: 1px solid var(--line); display: flex; justify-content: space-between; align-items: center; }
.modal-header h3 { margin: 0; }
.modal-body { padding: 20px; }
.toast { position: fixed; right: 20px; bottom: 20px; z-index: 200; padding: 13px 16px; background: #0f172a; color: white; border-radius: 12px; box-shadow: var(--shadow); opacity: 0; pointer-events: none; transform: translateY(12px); transition: .2s; max-width: 340px; }
.toast.show { opacity: 1; transform: translateY(0); }

@media (max-width: 1180px) {
  .grid-5 { grid-template-columns: repeat(3, 1fr); }
  .grid-4 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 900px) {
  .auth-shell { grid-template-columns: 1fr; gap: 36px; padding: 40px 24px; }
  .auth-card { margin: 0; }
  .app-shell { grid-template-columns: 1fr; }
  .sidebar { position: fixed; left: -290px; width: 270px; transition: .2s; }
  .sidebar.open { left: 0; box-shadow: 30px 0 60px rgba(15,23,42,.3); }
  .mobile-only { display: grid; }
  .topbar { padding: 0 18px; }
  .page-content { padding: 20px 18px 40px; }
  .topbar > div:first-of-type { flex: 1; padding-left: 10px; }
  .grid-3, .grid-2 { grid-template-columns: 1fr; }
  .meal-grid { grid-template-columns: 100px repeat(3, minmax(115px, 1fr)); overflow-x: auto; }
  .calendar { overflow-x: auto; grid-template-columns: repeat(7, 120px); }
  .laundry-board { overflow-x: auto; grid-template-columns: 100px repeat(3, 170px); }
}
@media (max-width: 620px) {
  .auth-brand { align-items: flex-start; }
  .auth-brand .brand-mark { width: 54px; height: 54px; border-radius: 16px; font-size: 17px; }
  .auth-brand h1 { font-size: 30px; }
  .auth-brand p { font-size: 14px; }
  .grid-5, .grid-4 { grid-template-columns: 1fr; }
  .form-grid { grid-template-columns: 1fr; }
  .form-grid .span-2 { grid-column: auto; }
  .top-actions .icon-btn { display: none; }
  .summary-strip { flex-direction: column; }
}

/* V2: yemek durumları, personel izin ayrıntısı ve takvim gezinmesi */
.person-link {
  appearance: none;
  border: 0;
  background: transparent;
  color: #0f5bd8;
  font: inherit;
  font-weight: 700;
  padding: 0;
  cursor: pointer;
  text-align: left;
}
.person-link:hover { text-decoration: underline; }
.choice { display: flex; flex-direction: column; gap: 7px; }
.meal-option {
  display: flex;
  align-items: flex-start;
  gap: 7px;
  padding: 8px;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: #fff;
  cursor: pointer;
  line-height: 1.2;
}
.meal-option:hover { border-color: #94a3b8; }
.meal-option.selected { border-color: #2563eb; background: #eff6ff; }
.meal-option input { margin-top: 2px; }
.meal-option span { display: flex; flex-direction: column; gap: 3px; }
.meal-option strong { font-size: 11px; }
.meal-option small { color: var(--muted); font-size: 9px; }
.meal-count { display: block; font-weight: 800; }
.duty-count { display: block; color: #9a3412; font-size: 9px; margin-top: 3px; }
.calendar-toolbar { gap: 16px; flex-wrap: wrap; }
.calendar-actions { display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
.calendar-event {
  display: block;
  width: 100%;
  border: 0;
  text-align: left;
  cursor: pointer;
}
.calendar-event:hover { filter: brightness(.97); }
.compact-metrics .metric-card { min-height: 110px; }

@media (max-width: 760px) {
  .calendar-actions { width: 100%; justify-content: stretch; }
  .calendar-actions .btn { flex: 1; }
  .meal-option { min-width: 130px; }
}

/* V3: tarihli yemek listesi, birleşik müdür/personel hesabı ve puanlı izin planı */
.nav-section-label {
  padding: 18px 12px 6px;
  color: #64748b;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.management-banner {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 15px 18px;
  border: 1px solid #93c5fd;
  border-radius: 14px;
  background: #eff6ff;
  color: #1e3a8a;
}
.management-banner strong { white-space: nowrap; }
.management-banner span { color: #475569; font-size: 13px; }

.meal-bulk-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 14px;
}
.meal-date-table th,
.meal-date-table td { vertical-align: top; }
.meal-date-table td { white-space: normal; min-width: 230px; }
.meal-date-table .meal-date-cell { min-width: 185px; }
.meal-date-cell strong { display: block; text-transform: capitalize; }
.meal-date-cell small { display: block; color: var(--muted); margin-top: 5px; }
.meal-choice-group {
  display: grid;
  grid-template-columns: repeat(3, minmax(78px, 1fr));
  gap: 6px;
}
.meal-pill {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 8px 9px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #fff;
  cursor: pointer;
  text-align: center;
  font-size: 10.5px;
  font-weight: 700;
  line-height: 1.25;
  transition: .15s ease;
}
.meal-pill:hover { border-color: #93c5fd; background: #f8fbff; }
.meal-pill.selected { border-color: #2563eb; background: #eff6ff; color: #1d4ed8; box-shadow: inset 0 0 0 1px #2563eb; }
.meal-pill input { position: absolute; opacity: 0; pointer-events: none; }
.text-danger { color: var(--danger); font-weight: 800; }

.person-summary,
.preference-summary {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}
.preference-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.person-summary > div,
.preference-summary > div {
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #f8fafc;
}
.person-summary strong,
.preference-summary strong { display: block; font-size: 12px; color: #475569; }
.person-summary span,
.preference-summary span { display: block; margin-top: 5px; font-weight: 700; }
.preference-heading {
  display: flex;
  align-items: baseline;
  gap: 10px;
  padding: 12px 14px;
  border-radius: 12px;
  background: #f0fdfa;
  border: 1px solid #99f6e4;
}
.preference-heading span { color: var(--muted); font-size: 12px; }
.table-sub { display: block; margin-top: 4px; color: var(--muted); }
.text-button {
  display: block;
  border: 0;
  background: transparent;
  color: #2563eb;
  padding: 3px 0 0;
  font-size: 10px;
  cursor: pointer;
}
.text-button:hover { text-decoration: underline; }

@media (max-width: 1200px) {
  .meal-choice-group { grid-template-columns: 1fr; }
  .meal-date-table td { min-width: 155px; }
}
@media (max-width: 760px) {
  .management-banner { align-items: flex-start; flex-direction: column; }
  .person-summary,
  .preference-summary { grid-template-columns: 1fr; }
  .meal-date-table .meal-date-cell { min-width: 150px; }
  .meal-date-table td { min-width: 145px; }
  .meal-pill { min-height: 40px; }
}


/* V4: aşçıların günlük yemek hazırlık ekranı */
.kitchen-topbar {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 22px;
  padding: 22px 24px;
  border-radius: 18px;
  background: linear-gradient(135deg, #0f172a, #1e293b);
  color: white;
  box-shadow: var(--shadow);
}
.kitchen-topbar h2 { margin: 5px 0 6px; font-size: 25px; text-transform: capitalize; }
.kitchen-topbar p { margin: 0; color: #cbd5e1; font-size: 13px; }
.kitchen-eyebrow { color: #5eead4; font-size: 10px; font-weight: 800; letter-spacing: .14em; }
.kitchen-date-actions { align-items: center; }
.kitchen-date-actions input { min-width: 145px; min-height: 35px; padding: 7px 10px; }
.kitchen-meals { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.kitchen-meal-card { overflow: hidden; }
.kitchen-meal-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 18px 18px 0; }
.kitchen-meal-head > div { display: flex; align-items: center; gap: 9px; }
.kitchen-meal-head h3 { margin: 0; }
.kitchen-meal-head > div > span { font-size: 24px; }
.kitchen-main-number { padding: 16px 18px 12px; text-align: center; }
.kitchen-main-number strong { display: block; font-size: 58px; line-height: 1; color: #0f766e; letter-spacing: -.05em; }
.kitchen-main-number span { display: block; margin-top: 8px; color: #475569; font-weight: 700; }
.kitchen-stat-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1px; background: var(--line); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.kitchen-stat-grid > div { padding: 13px 14px; background: #fff; }
.kitchen-stat-grid strong { display: block; font-size: 21px; }
.kitchen-stat-grid span { display: block; margin-top: 3px; color: var(--muted); font-size: 10px; }
.kitchen-warning, .kitchen-ready { margin: 14px; padding: 10px 12px; border-radius: 10px; font-size: 11px; font-weight: 700; }
.kitchen-warning { color: #92400e; background: #fef3c7; border: 1px solid #fde68a; }
.kitchen-ready { color: #166534; background: #dcfce7; border: 1px solid #bbf7d0; }
.kitchen-table-total { display: inline-grid; place-items: center; min-width: 42px; height: 34px; padding: 0 9px; border-radius: 10px; background: #ccfbf1; color: #115e59; font-size: 18px; font-weight: 900; }
.kitchen-detail-summary { display: flex; align-items: baseline; gap: 9px; padding: 15px 16px; border-radius: 13px; background: #f0fdfa; border: 1px solid #99f6e4; }
.kitchen-detail-summary strong { font-size: 30px; color: #0f766e; }
.kitchen-detail-summary span { color: #475569; font-weight: 700; }
.kitchen-name-groups { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 14px; }
.kitchen-name-group { border: 1px solid var(--line); border-radius: 13px; overflow: hidden; }
.kitchen-name-group > div { display: flex; justify-content: space-between; gap: 10px; padding: 11px 13px; background: #f8fafc; }
.kitchen-name-group > div span { color: var(--muted); font-size: 11px; }
.kitchen-name-group ul { list-style: none; padding: 0; margin: 0; }
.kitchen-name-group li { display: flex; justify-content: space-between; gap: 12px; padding: 10px 13px; border-top: 1px solid var(--line); font-size: 12px; font-weight: 700; }
.kitchen-name-group li small { color: var(--muted); font-weight: 500; }
.kitchen-name-group p { margin: 0; padding: 16px 13px; color: var(--muted); font-size: 12px; }
.kitchen-name-group.yes > div { background: #dcfce7; color: #166534; }
.kitchen-name-group.duty > div { background: #dbeafe; color: #1e40af; }
.kitchen-name-group.no > div { background: #f1f5f9; color: #475569; }
.kitchen-name-group.missing > div { background: #fef3c7; color: #92400e; }

@media (max-width: 1080px) {
  .kitchen-meals { grid-template-columns: 1fr; }
  .kitchen-meal-card { display: grid; grid-template-columns: minmax(180px, .8fr) 1.2fr; }
  .kitchen-meal-head { grid-column: 1 / -1; }
  .kitchen-warning, .kitchen-ready { grid-column: 1 / -1; }
}
@media (max-width: 760px) {
  .kitchen-topbar { align-items: flex-start; flex-direction: column; }
  .kitchen-date-actions { width: 100%; }
  .kitchen-date-actions input { width: 100%; }
  .kitchen-meal-card { display: block; }
  .kitchen-name-groups { grid-template-columns: 1fr; }
  .kitchen-main-number strong { font-size: 50px; }
}
@media print {
  .sidebar, .topbar, .kitchen-date-actions, .kitchen-meal-head .btn, .kitchen-summary-table .btn { display: none !important; }
  .app-shell { display: block; }
  .page-content { padding: 0; max-width: none; }
  .kitchen-topbar { color: #000; background: #fff; box-shadow: none; border: 1px solid #000; }
  .kitchen-topbar p, .kitchen-eyebrow { color: #000; }
  .card { box-shadow: none; break-inside: avoid; }
}

/* V5 · Rol/Yetki ve Yoklama */
.role-check-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.role-check{display:flex;gap:10px;align-items:flex-start;padding:12px;border:1px solid var(--border);border-radius:12px;background:var(--surface-soft,#f8fafc);cursor:pointer}
.role-check input{width:auto;margin-top:3px}
.role-check span{display:flex;flex-direction:column;gap:3px}
.role-check small{color:var(--muted);font-size:11px;line-height:1.35;word-break:break-word}
.attendance-toolbar{display:flex;justify-content:space-between;align-items:flex-end;gap:18px;background:linear-gradient(135deg,#0f172a,#1e293b);color:#fff;padding:20px;border-radius:16px}
.attendance-toolbar h2{margin:4px 0 2px;font-size:22px}
.attendance-toolbar p{margin:0;color:#cbd5e1}
.attendance-toolbar input[type=date]{min-height:36px;border-radius:9px;border:1px solid rgba(255,255,255,.2);padding:0 10px;background:#fff;color:#0f172a}
.attendance-badge{display:inline-flex;align-items:center;justify-content:center;min-width:34px;gap:5px;border-radius:999px;padding:5px 9px;font-size:12px;font-weight:800;white-space:nowrap;border:1px solid transparent}
.att-present{background:#dcfce7;color:#166534;border-color:#bbf7d0}
.att-work{background:#ecfccb;color:#3f6212;border-color:#d9f99d}
.att-watch{background:#fef9c3;color:#854d0e;border-color:#fef08a}
.att-annual_leave,.att-excuse_leave,.att-road_leave{background:#fef3c7;color:#92400e;border-color:#fde68a}
.att-medical,.att-referral{background:#fee2e2;color:#991b1b;border-color:#fecaca}
.att-duty,.att-temporary_duty{background:#dbeafe;color:#1d4ed8;border-color:#bfdbfe}
.att-course{background:#ede9fe;color:#6d28d9;border-color:#ddd6fe}
.att-rest{background:#e0f2fe;color:#0369a1;border-color:#bae6fd}
.att-other{background:#e2e8f0;color:#475569;border-color:#cbd5e1}
.attendance-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.attendance-group{border:1px solid var(--border);border-radius:12px;padding:14px;background:#fff}
.attendance-group>div{display:flex;justify-content:space-between;gap:10px;align-items:center}
.attendance-group p{margin:10px 0 0;color:var(--muted);line-height:1.55;font-size:13px}
.attendance-week-table th,.attendance-week-table td{text-align:center;vertical-align:middle;min-width:74px}
.attendance-week-table th:first-child,.attendance-week-table td:first-child{text-align:left;min-width:190px;position:sticky;left:0;background:var(--surface,#fff);z-index:1}
.attendance-week-table th small{display:block;color:var(--muted);font-weight:500;margin-top:3px}

@media (max-width: 760px){
  .role-check-grid,.attendance-groups{grid-template-columns:1fr}
  .attendance-toolbar{align-items:stretch;flex-direction:column}
  .attendance-toolbar .calendar-actions{width:100%;overflow:auto;justify-content:flex-start}
  .attendance-week-table th:first-child,.attendance-week-table td:first-child{min-width:150px}
}

/* V6 - Firebase / Firestore */
.cloud-status{display:flex;align-items:center;gap:7px;padding:7px 10px;border:1px solid var(--border,#dbe3ee);border-radius:999px;font-size:12px;font-weight:700;background:#fff;white-space:nowrap}
.cloud-dot{width:8px;height:8px;border-radius:50%;background:#f59e0b;box-shadow:0 0 0 3px rgba(245,158,11,.12)}
.cloud-status.online .cloud-dot{background:#22c55e;box-shadow:0 0 0 3px rgba(34,197,94,.12)}
.cloud-status.offline .cloud-dot{background:#ef4444;box-shadow:0 0 0 3px rgba(239,68,68,.12)}
.bootstrap-box{margin-top:14px;padding:14px;border:1px solid #f2c94c;background:#fffbeb;border-radius:14px;display:flex;flex-direction:column;gap:8px}
.bootstrap-box strong{font-size:14px}.bootstrap-box span{font-size:12px;color:#6b7280}.bootstrap-box.hidden{display:none}
.firebase-info-box{border-color:#bfdbfe;background:#eff6ff}
.firebase-card{border:1px solid #bfdbfe;background:#eff6ff;border-radius:14px;padding:14px}
.firebase-card strong{display:block;margin-bottom:4px}.firebase-card span{font-size:12px;color:#475569}
.sync-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
@media(max-width:760px){.cloud-status{padding:6px 8px}.cloud-status span:last-child{display:none}}

/* V6.3 - Yoklama konum / görev yeri */
.attendance-location-mini {
  display: block;
  margin-top: 4px;
  font-size: 10px;
  line-height: 1.15;
  color: var(--muted, #64748b);
  max-width: 90px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* PBYS V7 - toplu güncellemeler */
.auth-brand .brand-mark{min-width:72px;width:auto;padding:0 14px;font-size:16px}
.sidebar-brand .brand-mark.small{font-size:12px}
.meal-mobile-list{display:grid;gap:14px}
.meal-day-card{border:1px solid var(--line,#dbe3ee);border-radius:16px;padding:16px;background:#fff}
.meal-day-card.meal-on-leave{background:#fffbeb;border-color:#fde68a}
.meal-day-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding-bottom:13px;border-bottom:1px solid var(--line,#e2e8f0)}
.meal-day-head strong{display:block;font-size:17px}.meal-day-head small{display:block;margin-top:3px;color:var(--muted,#64748b)}
.meal-day-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:14px}
.meal-unit{border:1px solid var(--line,#e2e8f0);border-radius:13px;padding:12px;background:#f8fafc}
.meal-unit>strong{display:block;margin-bottom:9px}.meal-unit .meal-choice-group{display:grid;grid-template-columns:1fr;gap:7px}
.meal-reset{margin-top:7px}.meal-leave-note{display:block;color:#92400e;font-size:12px;line-height:1.45}
.survey-chart{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.survey-month{border:1px solid var(--line,#e2e8f0);border-radius:13px;padding:12px}.survey-month>strong{text-transform:capitalize;display:block;margin-bottom:9px}
.survey-bar-row{display:grid;grid-template-columns:22px 1fr 24px;gap:6px;align-items:center;margin-top:6px;font-size:11px}.survey-bar{height:9px;background:#e2e8f0;border-radius:99px;overflow:hidden}.survey-bar i{display:block;height:100%;background:#0f766e;border-radius:99px}.survey-bar-row.second .survey-bar i{background:#60a5fa}.survey-bar-row b{text-align:right}
.holiday-list{display:flex;gap:8px;flex-wrap:wrap}.holiday-list span{padding:8px 10px;border:1px solid #fde68a;background:#fffbeb;border-radius:10px;font-size:11px}.holiday-note{display:block;margin-top:5px;color:#9a3412;font-weight:800}.holiday-hit td{background:#fff7ed!important}
.laundry-board .head small{display:block;font-size:9px;margin-top:3px;color:var(--muted,#64748b)}.slot.broken{background:#fee2e2;color:#991b1b;display:grid;place-items:center;text-align:center;font-weight:800}
@media(max-width:760px){
  .meal-day-grid{grid-template-columns:1fr}.meal-day-card{padding:13px}.meal-day-head{flex-direction:column}.meal-unit{padding:10px}.meal-unit .meal-choice-group{grid-template-columns:1fr 1fr}.meal-pill span{padding:10px 8px;font-size:12px;text-align:center}.meal-reset{font-size:11px}.survey-chart{grid-template-columns:1fr 1fr}.calendar-toolbar{align-items:stretch}.calendar-toolbar .calendar-actions{overflow:auto;justify-content:flex-start}.calendar-toolbar .calendar-actions>*{flex:0 0 auto}
}
@media(max-width:430px){.survey-chart{grid-template-columns:1fr}.meal-unit .meal-choice-group{grid-template-columns:1fr 1fr}.topbar h2{font-size:21px}}
@media print{.calendar-actions,.btn,.text-button{display:none!important}.page-content{background:#fff}.holiday-hit td{background:#fff7ed!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}}


/* PBYS V8 - toplu test düzeltmeleri */
.attendance-task-mini{
  display:block;
  margin-top:3px;
  max-width:120px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:9px;
  line-height:1.2;
  color:#334155;
  font-weight:700;
}
.machine-status-actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}
.report-actions,.report-preview-actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}
.pdf-preview{
  max-height:65vh;
  overflow:auto;
  padding:18px;
  border:1px solid var(--line,#e2e8f0);
  border-radius:14px;
  background:white;
}
.pdf-preview .report-head,
.report-print-area .report-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:20px;
  padding-bottom:14px;
  margin-bottom:16px;
  border-bottom:2px solid #0f172a;
}
.pdf-preview .report-head h1,
.report-print-area .report-head h1{margin:0;font-size:25px}
.pdf-preview .report-head p,
.report-print-area .report-head p{margin:3px 0 0;color:#64748b}
.pdf-preview .report-head>div:last-child,
.report-print-area .report-head>div:last-child{text-align:right}
.pdf-preview .report-head span,
.report-print-area .report-head span{display:block;margin-top:4px;font-size:11px;color:#64748b}
.pdf-preview table,
.report-print-area table{
  width:100%;
  border-collapse:collapse;
  margin:10px 0 22px;
  font-size:11px;
}
.pdf-preview th,.pdf-preview td,
.report-print-area th,.report-print-area td{
  padding:8px;
  border:1px solid #cbd5e1;
  text-align:left;
}
.pdf-preview th,.report-print-area th{background:#f1f5f9}
.report-summary{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin:12px 0 18px;
}
.report-summary span{
  padding:9px 11px;
  border:1px solid #cbd5e1;
  border-radius:9px;
  background:#f8fafc;
}
.report-print-area{display:none}

/* Mobil yemek kartlarında günler daha belirgin */
.meal-mobile-list{gap:22px}
.meal-day-card{
  border:2px solid #cbd5e1;
  border-radius:20px;
  padding:18px;
  box-shadow:0 8px 24px rgba(15,23,42,.07);
  overflow:hidden;
}
.meal-day-card:nth-child(even){background:#fbfdff}
.meal-day-card.meal-on-leave{border-color:#f59e0b;box-shadow:0 8px 24px rgba(245,158,11,.10)}
.meal-day-head{
  margin:-18px -18px 16px;
  padding:15px 18px;
  background:#f1f5f9;
  border-bottom:2px solid #cbd5e1;
}
.meal-day-card.meal-on-leave .meal-day-head{background:#fff7ed;border-bottom-color:#fed7aa}
.meal-day-head strong{
  font-size:20px;
  color:#0f172a;
  letter-spacing:-.02em;
}
.meal-day-head small{
  margin-top:5px;
  font-size:12px;
  font-weight:600;
}
.meal-unit{border-color:#d7e0eb;background:#fff}

@media(max-width:760px){
  .meal-mobile-list{gap:20px}
  .meal-day-card{padding:14px;border-width:2px;border-radius:18px}
  .meal-day-head{margin:-14px -14px 14px;padding:14px}
  .meal-day-head strong{font-size:19px}
  .machine-status-actions{display:grid;grid-template-columns:1fr}
  .pdf-preview{padding:10px;max-height:70vh}
  .pdf-preview .report-head{flex-direction:column}
  .pdf-preview .report-head>div:last-child{text-align:left}
}

@media print{
  body.printing-report > *:not(.report-print-area){display:none!important}
  body.printing-report .report-print-area{
    display:block!important;
    position:static;
    width:100%;
    padding:0;
    margin:0;
    color:#000;
    background:#fff;
  }
  body.printing-report .report-print-area table{font-size:10px}
  body.printing-report .report-print-area h3{margin-top:18px}
}

/* V8.5: Tabldot bilanço mobil hizalama ve ödeme onayı */
.finance-page{width:100%;min-width:0}
.finance-page .grid{width:100%;min-width:0}
.finance-page .grid>*{min-width:0;width:100%;box-sizing:border-box}
.finance-page .card{width:100%;min-width:0;box-sizing:border-box}
.finance-page .table-wrap{width:100%;max-width:100%;overflow-x:auto}
.finance-page .finance-summary .metric-card{min-height:122px}
.finance-page .finance-detail-grid>.card{height:100%}
.finance-page .payment-approval-card{border-color:#f59e0b33}
.finance-page .payment-approval-card .card-header{background:#fffbeb}
.commander-leave-card{border-color:#f59e0b55;box-shadow:0 10px 28px rgba(245,158,11,.09)}
.commander-leave-card .card-header{background:#fffbeb}

@media(max-width:900px){
  .finance-page .grid-4,.finance-page .grid-2{grid-template-columns:minmax(0,1fr)!important}
  .finance-page .finance-summary .metric-card{min-height:0}
  .finance-page .card-header.calendar-toolbar{align-items:flex-start}
  .finance-page .calendar-actions{width:100%}
  .finance-page .calendar-actions>*{flex:1 1 150px}
  .finance-page .table-wrap table{min-width:650px}
}

@media(max-width:620px){
  .finance-page .card-header{padding:16px}
  .finance-page .metric-card{padding:16px}
  .finance-page .calendar-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .finance-page .calendar-actions input{grid-column:1/-1;width:100%}
  .finance-page .calendar-actions .btn{width:100%}
  .finance-page .table-wrap table{min-width:620px}
  .commander-leave-card .card-header{align-items:flex-start;flex-direction:column}
  .commander-leave-card .card-header .btn{width:100%}
}

/* V8.6 - Kış/Yaz yıllık izin tercih ayrımı */
.preference-period-title{display:flex;flex-direction:column;gap:4px;padding:14px 16px;border:1px solid #bfdbfe;background:#eff6ff;border-radius:14px;margin-top:8px}.preference-period-title strong{font-size:16px}.preference-period-title span{font-size:12px;color:var(--muted)}.preference-period-title.preference-summer{border-color:#fed7aa;background:#fff7ed}.survey-chart-season{grid-template-columns:repeat(2,minmax(0,1fr))}@media(min-width:1200px){.survey-chart-season{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:640px){.survey-chart-season{grid-template-columns:1fr 1fr}.preference-period-title{padding:12px}}

/* PBYS V8.7 - mobil sabit çıkış, faaliyet takvimi, günlük menü, komutan ana sayfası */
.sidebar{height:100dvh;max-height:100dvh;overflow:hidden}
.sidebar-brand{flex:0 0 auto}
.nav-list{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;align-content:start}
.sidebar-footer{flex:0 0 auto;margin-top:0;background:#0f172a;padding-bottom:max(0px,env(safe-area-inset-bottom))}

.dashboard-menu-card .card-header{align-items:flex-start}
.dashboard-menu-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.dashboard-menu-grid>section{border:1px solid var(--line);border-radius:14px;padding:14px;background:#f8fafc;min-width:0}
.dashboard-menu-title{display:flex;align-items:center;gap:8px;margin-bottom:10px}
.dashboard-menu-title strong{font-size:16px}
.dashboard-menu-list{margin:0;padding-left:19px;display:grid;gap:7px;color:#334155}
.menu-empty{font-size:13px;color:var(--muted);padding:4px 0}
.menu-info-note{padding-top:0;color:var(--muted);font-size:12px}

.weekly-activities-card .card-header{align-items:flex-start}
.weekly-activity-days{display:grid;grid-template-columns:repeat(7,minmax(170px,1fr));gap:10px;overflow-x:auto}
.weekly-activity-day{border:1px solid var(--line);border-radius:14px;background:#fff;min-width:170px;overflow:hidden}
.weekly-activity-day.today{border-color:#5eead4;box-shadow:0 0 0 2px rgba(45,212,191,.12)}
.weekly-day-head{display:flex;justify-content:space-between;gap:8px;align-items:center;padding:10px 11px;background:#f8fafc;border-bottom:1px solid var(--line)}
.weekly-day-head strong{text-transform:capitalize;font-size:13px}
.weekly-day-head span{font-size:10px;color:var(--muted)}
.weekly-activity-day.today .weekly-day-head{background:#ecfdf5}
.activity-row{display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:8px;align-items:start;padding:10px 11px;border-top:1px solid #edf2f7}
.activity-row:first-of-type{border-top:0}
.activity-row.today{background:#fcfffe}
.activity-time{font-size:11px;font-weight:800;color:#0f766e;padding-top:2px}
.activity-main{display:grid;gap:3px;min-width:0}
.activity-main strong{font-size:12px;line-height:1.35}
.activity-main span,.activity-main small{font-size:10px;color:var(--muted);line-height:1.35}
.activity-actions{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end}
.activity-actions .btn{padding:5px 7px;font-size:9px}
.activity-none{padding:14px 11px;color:#94a3b8;font-size:11px;text-align:center}
.today-activity-block{border-bottom:1px solid var(--line);background:#fbfdff}
.activity-section-title{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:10px}
.activity-section-title span{font-size:11px;color:var(--muted)}
.compact-empty{padding:12px}

.commander-status-card{border-color:#bfdbfe;box-shadow:0 12px 34px rgba(59,130,246,.08)}
.commander-status-card>.card-header{background:#eff6ff}
.commander-leave-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;border-bottom:1px solid var(--line)}
.commander-leave-summary>div{border:1px solid #dbeafe;border-radius:12px;padding:12px;background:#f8fbff;display:grid;gap:2px}
.commander-leave-summary strong{font-size:24px}.commander-leave-summary span{font-size:11px;color:var(--muted)}
.pending-leave-inline{border-top:1px solid var(--line)}
.report-leave-range{display:grid;gap:2px;margin:3px 0}
.report-leave-range span{font-size:9px;color:#475569}

@media(max-width:900px){
  .sidebar{height:100dvh;max-height:100dvh;padding:18px 16px max(12px,env(safe-area-inset-bottom));}
  .sidebar-brand{padding-bottom:14px}
  .nav-list{padding:12px 0}
  .sidebar-footer{padding-top:12px}
}
@media(max-width:760px){
  .dashboard-menu-grid{grid-template-columns:1fr}
  .dashboard-menu-card .card-header,.weekly-activities-card .card-header,.commander-status-card .card-header{flex-direction:column;align-items:stretch}
  .dashboard-menu-card .card-header .btn,.weekly-activities-card .card-header .btn,.commander-status-card .card-header .btn{width:100%}
  .weekly-activity-days{grid-template-columns:1fr;overflow:visible}
  .weekly-activity-day{min-width:0}
  .activity-row{grid-template-columns:44px minmax(0,1fr)}
  .activity-actions{grid-column:1/-1;justify-content:flex-start}
  .commander-leave-summary{grid-template-columns:1fr 1fr}
}
@media(max-width:430px){
  .commander-leave-summary{grid-template-columns:1fr}
  .activity-section-title{align-items:flex-start;flex-direction:column;gap:3px}
}


/* PBYS V8.8 - mobil yan menü dışına dokununca kapatma katmanı */
.sidebar-backdrop{display:none}
@media(max-width:900px){
  .sidebar-backdrop{
    display:block;
    position:fixed;
    inset:0;
    z-index:19;
    background:rgba(15,23,42,.28);
    opacity:0;
    pointer-events:none;
    transition:opacity .2s ease;
  }
  .sidebar.open + .sidebar-backdrop{
    opacity:1;
    pointer-events:auto;
  }
}

/* ========================================================================== 
   PBYS V9.0 — Kurumsal / Premium Arayüz
   İşlevsel yapıyı değiştirmeden görsel sistem yeniden tasarlanmıştır.
   ========================================================================== */
:root{
  --bg:#f4f7fb;
  --surface:#ffffff;
  --surface-2:#f8fafc;
  --surface-3:#eef3f8;
  --text:#111827;
  --muted:#6b7280;
  --line:#e5eaf1;
  --primary:#0d9488;
  --primary-dark:#0f766e;
  --primary-soft:#e8faf7;
  --success:#15803d;
  --warning:#b45309;
  --danger:#b42318;
  --info:#2563eb;
  --sidebar:#0b1220;
  --sidebar-2:#111a2e;
  --sidebar-text:#d8e0ec;
  --shadow-sm:0 2px 8px rgba(15,23,42,.035),0 1px 2px rgba(15,23,42,.04);
  --shadow:0 18px 45px rgba(15,23,42,.07),0 2px 8px rgba(15,23,42,.035);
  --shadow-lg:0 28px 70px rgba(15,23,42,.12);
  --radius:20px;
  --radius-sm:13px;
}
html{background:var(--bg)}
body{
  font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  background:
    radial-gradient(circle at 90% -10%,rgba(13,148,136,.055),transparent 26rem),
    linear-gradient(180deg,#f8fafc 0,#f4f7fb 34rem,var(--bg) 100%);
  letter-spacing:-.008em;
}
h1,h2,h3,h4,.sidebar-brand strong,.metric-card strong,.brand-mark{font-family:Manrope,Inter,sans-serif;letter-spacing:-.035em}
button,input,select,textarea{font-family:inherit}

/* Authentication */
.auth-shell{
  min-height:100dvh;
  grid-template-columns:minmax(0,1.1fr) minmax(380px,.72fr);
  gap:clamp(48px,7vw,120px);
  padding:clamp(32px,6vw,90px);
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(circle at 12% 18%,rgba(45,212,191,.23),transparent 28%),
    radial-gradient(circle at 72% 92%,rgba(59,130,246,.15),transparent 30%),
    linear-gradient(135deg,#07101f 0%,#0d1b2e 48%,#0b2d31 100%);
}
.auth-shell::before,.auth-shell::after{content:"";position:absolute;border:1px solid rgba(255,255,255,.055);border-radius:50%;pointer-events:none}
.auth-shell::before{width:42vw;height:42vw;left:-16vw;bottom:-24vw}.auth-shell::after{width:32vw;height:32vw;right:-13vw;top:-14vw}
.auth-brand,.auth-card{position:relative;z-index:1}
.auth-brand{align-items:flex-start;gap:24px;max-width:760px}
.auth-brand-copy{display:grid;gap:0;padding-top:4px}
.auth-eyebrow{font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#66e7d5;margin-bottom:18px}
.auth-brand h1{font-size:clamp(54px,7vw,96px);font-weight:800;margin:0 0 10px;color:#fff;text-shadow:0 12px 36px rgba(0,0,0,.15)}
.auth-brand p{font-size:clamp(17px,1.7vw,23px);color:#c7d2e3;line-height:1.45}
.auth-brand-points{display:flex;gap:10px;flex-wrap:wrap;margin-top:28px}
.auth-brand-points span{padding:9px 12px;border:1px solid rgba(255,255,255,.10);background:rgba(255,255,255,.055);border-radius:999px;color:#cbd5e1;font-size:11px;font-weight:700;backdrop-filter:blur(10px)}
.brand-mark{background:linear-gradient(135deg,#7ff3df,#2dd4bf);color:#082f2d;box-shadow:0 22px 55px rgba(13,148,136,.24);border:1px solid rgba(255,255,255,.35)}
.auth-brand .brand-mark{width:88px;height:88px;border-radius:27px;font-size:25px;flex:0 0 auto}
.auth-card{width:min(490px,100%);padding:30px;border-radius:28px;background:rgba(255,255,255,.965);border:1px solid rgba(255,255,255,.75);box-shadow:0 40px 110px rgba(0,0,0,.34);backdrop-filter:blur(24px)}
.auth-card-intro{margin-bottom:22px}.auth-card-intro h2{font-size:29px;margin:5px 0 6px}.auth-card-intro p{margin:0;color:var(--muted);font-size:13px}.auth-card-kicker{font-size:10px;font-weight:800;letter-spacing:.13em;color:var(--primary)}
.auth-tabs{border:1px solid var(--line);background:#f5f7fa;border-radius:14px;padding:4px}.auth-tab{border-radius:10px;padding:11px}.auth-tab.active{box-shadow:var(--shadow-sm)}
.auth-form{gap:17px}.auth-form label{font-size:13px;color:#344054}.auth-form input{height:48px;border-radius:13px;background:#fbfcfd;border-color:#dce3eb}
.auth-form input:focus,.auth-form select:focus,.auth-form textarea:focus{background:white;border-color:#5dd7c8;box-shadow:0 0 0 4px rgba(13,148,136,.09)}
.demo-box{border:1px solid #e4e9f0;background:#f8fafc;border-radius:14px}

/* App shell / navigation */
.app-shell{grid-template-columns:292px minmax(0,1fr);background:transparent}
.sidebar{
  width:292px;
  padding:20px 17px 16px;
  background:
    radial-gradient(circle at 20% 0%,rgba(45,212,191,.10),transparent 16rem),
    linear-gradient(180deg,var(--sidebar-2) 0%,var(--sidebar) 46%,#09101d 100%);
  border-right:1px solid rgba(255,255,255,.055);
  box-shadow:16px 0 55px rgba(15,23,42,.065);
}
.sidebar-brand{padding:2px 9px 20px;gap:13px;border-bottom:1px solid rgba(255,255,255,.075)}
.sidebar-brand .brand-mark.small{width:46px;height:46px;border-radius:15px;font-size:14px;box-shadow:0 12px 24px rgba(45,212,191,.16)}
.sidebar-brand strong{font-size:19px;color:#fff}.sidebar-brand span{font-size:11px;color:#9aa8bb;line-height:1.3}.sidebar-brand small{font-size:8px;text-transform:uppercase;letter-spacing:.11em;color:#53d6c4;margin-top:2px}
.nav-list{padding:17px 2px 13px;gap:4px;scrollbar-width:thin;scrollbar-color:rgba(148,163,184,.35) transparent}
.nav-list::-webkit-scrollbar{width:5px}.nav-list::-webkit-scrollbar-thumb{background:rgba(148,163,184,.28);border-radius:999px}
.nav-section-label{padding:18px 12px 8px;color:#637085;font-size:9px;font-weight:800;letter-spacing:.14em;text-transform:uppercase}
.nav-item{min-height:47px;padding:7px 10px;border-radius:13px;color:#c2ccda;gap:11px;font-size:13px;font-weight:600;position:relative;transition:background .18s ease,color .18s ease,transform .18s ease}
.nav-item:hover{background:rgba(255,255,255,.055);color:#fff;transform:translateX(2px)}
.nav-item.active{background:linear-gradient(90deg,rgba(45,212,191,.17),rgba(45,212,191,.075));color:#7ce6d7;box-shadow:inset 0 0 0 1px rgba(94,234,212,.075)}
.nav-item.active::before{content:"";position:absolute;left:-2px;top:12px;bottom:12px;width:3px;border-radius:999px;background:#4adbc8;box-shadow:0 0 14px rgba(45,212,191,.45)}
.nav-icon{width:34px;height:34px;border-radius:10px;display:grid!important;place-items:center;flex:0 0 34px;background:rgba(255,255,255,.045);color:#8fa1b8;text-align:center!important}
.nav-icon svg{width:18px;height:18px;stroke:currentColor}.nav-item.active .nav-icon{background:rgba(45,212,191,.12);color:#74e7d8}.nav-item:hover .nav-icon{color:#e7edf5}
.sidebar-footer{border-top:1px solid rgba(255,255,255,.075);padding:14px 9px 0;gap:12px;background:transparent}
.user-mini{gap:11px}.user-mini strong{color:#f8fafc;font-size:13px}.user-mini span{font-size:10px;line-height:1.35}.avatar{border-radius:13px;background:linear-gradient(135deg,#d9fff8,#a9f2e7);color:#0f5f59;border:1px solid rgba(255,255,255,.65);box-shadow:0 5px 14px rgba(15,118,110,.08)}
.btn-ghost{min-height:42px;border-color:rgba(255,255,255,.12);background:rgba(255,255,255,.025);color:#d5deea}.btn-ghost:hover{background:rgba(255,255,255,.07);color:#fff}

/* Header */
.main-content{min-width:0;background:transparent}
.topbar{height:86px;padding:0 34px;background:rgba(249,251,253,.84);border-bottom:1px solid rgba(220,227,235,.86);backdrop-filter:blur(18px) saturate(140%)}
.topbar h2{font-size:22px;font-weight:800;color:#121826}.topbar p{font-size:11px;color:#7b8798;font-weight:500;margin-top:3px}
.top-actions{gap:9px}.icon-btn{width:42px;height:42px;border-radius:13px;background:#fff;border:1px solid #e5eaf1;color:#475467;box-shadow:var(--shadow-sm)}
.cloud-status{height:36px;padding:0 11px!important;border:1px solid #e4e9ef!important;background:rgba(255,255,255,.9)!important;border-radius:999px!important;box-shadow:var(--shadow-sm);font-size:10px!important;font-weight:700!important}
.cloud-dot{box-shadow:0 0 0 4px rgba(34,197,94,.10)}
.page-content{padding:30px 34px 56px;max-width:1720px}

/* Cards / hierarchy */
.card{border:1px solid rgba(221,228,236,.92);border-radius:22px;box-shadow:var(--shadow-sm);background:rgba(255,255,255,.96);overflow:hidden;transition:box-shadow .2s ease,border-color .2s ease,transform .2s ease}
.card:hover{border-color:#d5dde7;box-shadow:0 12px 32px rgba(15,23,42,.055)}
.card-header{padding:19px 21px;border-bottom:1px solid #edf0f4;background:linear-gradient(180deg,#fff,#fdfefe)}
.card-header h3{font-size:15px;font-weight:800;color:#182230}.card-header p{font-size:11px;line-height:1.5;color:#7b8798}.card-body{padding:21px}
.grid{gap:18px}.section-gap{margin-top:20px}
.metric-card{min-height:118px;padding:19px;gap:15px;position:relative;overflow:hidden}
.metric-card::after{content:"";position:absolute;width:88px;height:88px;border-radius:50%;right:-38px;top:-38px;background:radial-gradient(circle,rgba(13,148,136,.10),transparent 70%);pointer-events:none}
.metric-icon{width:48px;height:48px;border-radius:14px;background:linear-gradient(145deg,#f6f9fc,#edf2f7);border:1px solid #e6ebf1;box-shadow:inset 0 1px 0 rgba(255,255,255,.75);font-size:20px}
.metric-card span{font-size:11px;color:#7b8798;font-weight:600}.metric-card strong{font-size:24px;color:#111827;margin-top:4px}.metric-card small{font-size:10px;line-height:1.35;color:#8b96a7}
.management-banner{border:1px solid #c8eee8!important;background:linear-gradient(90deg,#edfdf9,#f8fffd)!important;border-radius:16px!important;box-shadow:none!important}

/* Controls */
.btn{border-radius:12px;padding:10px 14px;font-size:12px;box-shadow:none;transition:transform .16s ease,box-shadow .16s ease,background .16s ease}
.btn:hover{transform:translateY(-1px)}.btn-primary{background:linear-gradient(135deg,#0f9f91,#0d8278);box-shadow:0 7px 16px rgba(13,148,136,.18)}.btn-primary:hover{background:linear-gradient(135deg,#0b8f83,#0c7069);box-shadow:0 9px 20px rgba(13,148,136,.22)}
.btn-secondary{background:#f2f5f8;color:#344054;border:1px solid #e1e7ee}.btn-danger{border:1px solid #fecaca}.btn-warning{border:1px solid #fde68a}.btn-success{border:1px solid #bbf7d0}
input,select,textarea{border-radius:12px;border-color:#dfe5ec;background:#fbfcfd;padding:11px 13px;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}
input:hover,select:hover,textarea:hover{border-color:#cfd8e3}input:focus,select:focus,textarea:focus{background:#fff;border-color:#5ccfc0;box-shadow:0 0 0 4px rgba(13,148,136,.085)}

/* Lists / tables */
.quick-list{gap:9px}.quick-item{min-height:62px;padding:11px 13px;background:#fbfcfd;border-color:#e7ecf2;border-radius:14px;transition:.16s ease}.quick-item:hover{background:#f7fafc;border-color:#dce4ed;transform:translateY(-1px);box-shadow:var(--shadow-sm)}.quick-item .metric-icon{width:40px;height:40px;border-radius:12px;font-size:17px}.quick-item strong{font-size:12px;color:#1d2939}.quick-item span{font-size:10px;line-height:1.4}.quick-item>b{font-size:19px;color:#98a2b3;font-weight:500}
.table-wrap{scrollbar-width:thin;scrollbar-color:#cbd5e1 transparent}table{font-size:12px}th{padding:11px 14px;background:#f8fafc;color:#667085;font-size:9px;letter-spacing:.075em;font-weight:800}td{padding:13px 14px;color:#344054;border-color:#edf0f4}tbody tr{transition:background .13s ease}tbody tr:hover{background:#fafcfd}.status{font-size:10px;padding:5px 9px;border:1px solid currentColor;border-color:color-mix(in srgb,currentColor 18%,transparent)}

/* Specialized dashboard blocks */
.commander-status-card{border-color:#d8e6f6;box-shadow:var(--shadow)}.commander-status-card>.card-header{background:linear-gradient(135deg,#f5f9ff,#fff)}
.commander-leave-summary>div{border-color:#dce8f6;background:linear-gradient(145deg,#f8fbff,#fff);border-radius:14px}.commander-leave-summary strong{font-family:Manrope,Inter,sans-serif;font-size:26px}
.weekly-activities-card,.dashboard-menu-card{box-shadow:var(--shadow-sm)}
.weekly-activity-day{border-radius:15px;border-color:#e4eaf0;box-shadow:0 1px 2px rgba(15,23,42,.025)}.weekly-day-head{background:#f8fafc}.weekly-activity-day.today{border-color:#7edfd3;box-shadow:0 0 0 3px rgba(13,148,136,.08)}.weekly-activity-day.today .weekly-day-head{background:linear-gradient(135deg,#ecfdf8,#f7fffd)}
.dashboard-menu-grid>section{border-radius:16px;background:linear-gradient(145deg,#fafcfd,#f7fafc);border-color:#e5eaf0}.dashboard-menu-title strong{font-size:14px}

/* Calendar / laundry */
.calendar,.laundry-board,.meal-grid{border-radius:17px;border-color:#dfe5ec;box-shadow:inset 0 1px 0 rgba(255,255,255,.7)}.calendar-head,.laundry-board .head,.meal-grid .head{background:#f7f9fc;color:#667085}.calendar-day{background:#fff}.calendar-day.muted{background:#fafbfc}.slot.free{background:#effcf9;color:#0f766e}.slot.busy{background:#f9fafb}

/* Modal / toast */
.modal-backdrop{background:rgba(7,16,31,.58);backdrop-filter:blur(7px)}.modal{border-radius:24px;border:1px solid rgba(255,255,255,.7);box-shadow:0 35px 100px rgba(7,16,31,.28);overflow:hidden}.modal-header{padding:19px 21px;background:#fbfcfd}.modal-header h3{font-size:17px}.modal-body{padding:21px}.toast{right:24px;bottom:24px;border-radius:14px;background:#111827;border:1px solid rgba(255,255,255,.08);box-shadow:0 20px 50px rgba(15,23,42,.22);font-size:12px}

/* Mobile */
@media(max-width:900px){
  .app-shell{grid-template-columns:1fr}
  .sidebar{width:min(86vw,334px);left:min(-86vw,-334px);padding:16px 14px max(10px,env(safe-area-inset-bottom));box-shadow:none}
  .sidebar.open{left:0;box-shadow:32px 0 80px rgba(7,16,31,.34)}
  .sidebar-backdrop{background:rgba(7,16,31,.42)!important;backdrop-filter:blur(3px)}
  .sidebar-brand{padding:2px 8px 14px}.sidebar-brand .brand-mark.small{width:44px;height:44px}.nav-list{padding:10px 1px}.nav-item{min-height:49px;font-size:14px}.nav-icon{width:35px;height:35px;flex-basis:35px}
  .topbar{height:76px;padding:0 14px 0 13px}.topbar h2{font-size:19px}.topbar p{font-size:10px}.topbar>div:first-of-type{padding-left:7px}.top-actions{gap:7px}.top-actions .cloud-status{display:none}.top-actions .avatar{width:38px;height:38px}
  .page-content{padding:18px 14px 40px}.card{border-radius:19px}.card-header{padding:16px}.card-body{padding:16px}.metric-card{min-height:104px;padding:16px}
  .grid{gap:13px}.section-gap{margin-top:14px}
}
@media(max-width:620px){
  .auth-shell{display:flex;flex-direction:column;justify-content:center;gap:28px;padding:28px 18px;background:linear-gradient(155deg,#081220,#0b2930)}
  .auth-brand{gap:14px;align-items:center}.auth-brand .brand-mark{width:58px;height:58px;border-radius:18px;font-size:17px}.auth-eyebrow{font-size:8px;margin-bottom:7px}.auth-brand h1{font-size:32px;margin-bottom:2px}.auth-brand p{font-size:12px}.auth-brand-points{display:none}.auth-card{padding:20px;border-radius:22px}.auth-card-intro h2{font-size:23px}.auth-card-intro{margin-bottom:17px}
  .metric-card strong{font-size:22px}.metric-icon{width:45px;height:45px}.card-header h3{font-size:14px}.card-header p{font-size:10px}
  .commander-leave-summary{grid-template-columns:1fr 1fr!important}.commander-leave-summary>div{padding:11px}.commander-leave-summary strong{font-size:23px}
}
@media(max-width:390px){.commander-leave-summary{grid-template-columns:1fr!important}.page-content{padding-left:11px;padding-right:11px}}


/* V9.1 · Mobil modal kaydırma düzeltmesi */
.modal{
  display:flex;
  flex-direction:column;
  max-height:min(88dvh, 900px);
  overflow:hidden;
}
.modal-header{
  flex:0 0 auto;
}
.modal-body{
  flex:1 1 auto;
  min-height:0;
  overflow-y:auto;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
}
@media (max-width:700px){
  .modal-backdrop{
    align-items:flex-start;
    padding:18px 12px max(18px, env(safe-area-inset-bottom));
  }
  .modal{
    width:100%;
    max-height:calc(100dvh - 36px - env(safe-area-inset-bottom));
    border-radius:22px;
  }
  .modal-body{
    padding-bottom:calc(26px + env(safe-area-inset-bottom));
  }
}

/* PBYS V9.2 · Toplu operasyon güncellemesi */
.menu-management-page .calendar-actions{align-items:center}
.personal-balance-highlight .card-body{display:flex;flex-direction:column;gap:5px;background:linear-gradient(135deg,#ecfdf5,#f8fafc);border-radius:inherit}
.personal-balance-highlight strong{font-size:17px;color:#065f46}.personal-balance-highlight span{color:#64748b;font-size:12px}
.current-user-row td{background:#ecfdf5!important}.current-user-row td:first-child{color:#047857}

.laundry-live-panel{overflow:hidden}
.laundry-live-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.laundry-live-card{border:1px solid #dfe5ec;border-radius:18px;padding:16px;background:linear-gradient(145deg,#fff,#f8fafc);display:flex;flex-direction:column;gap:15px;min-width:0;box-shadow:0 7px 20px rgba(15,23,42,.045)}
.laundry-live-card.running{border-color:#5eead4;background:linear-gradient(145deg,#f0fdfa,#fff)}
.laundry-live-card.finished{border-color:#fbbf24;background:linear-gradient(145deg,#fffbeb,#fff)}
.laundry-live-card.disabled{opacity:.72;background:#f8fafc}
.laundry-live-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.laundry-live-head>div{display:flex;align-items:center;gap:9px;min-width:0}.laundry-live-head strong{font-size:14px;line-height:1.3}.laundry-machine-dot{width:10px;height:10px;border-radius:50%;background:#14b8a6;box-shadow:0 0 0 4px rgba(20,184,166,.12);flex:0 0 auto}
.laundry-live-badge{font-size:10px;font-weight:800;padding:5px 8px;border-radius:999px;white-space:nowrap}.laundry-live-badge.running{background:#ccfbf1;color:#0f766e}.laundry-live-badge.finished{background:#fef3c7;color:#92400e}.laundry-live-badge.idle{background:#dcfce7;color:#166534}.laundry-live-badge.disabled{background:#fee2e2;color:#991b1b}
.laundry-owner{display:grid;gap:3px}.laundry-owner span,.laundry-owner small{font-size:10px;color:#7c8799}.laundry-owner strong{font-size:20px;line-height:1.15;color:#172033;overflow-wrap:anywhere}
.laundry-live-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.laundry-live-meta>div{border:1px solid #e6ebf1;border-radius:12px;padding:9px;background:rgba(255,255,255,.72);display:grid;gap:3px}.laundry-live-meta span{font-size:9px;color:#8490a1}.laundry-live-meta strong{font-size:12px;color:#273247}
.laundry-start-owner{padding:14px;border:1px solid #dfe5ec;border-radius:14px;background:#f8fafc;display:grid;gap:4px}.laundry-start-owner span{font-size:10px;color:#7c8799}.laundry-start-owner strong{font-size:17px}

@media(max-width:900px){.laundry-live-grid{grid-template-columns:1fr}.laundry-live-card{padding:15px}}
@media(max-width:760px){
  /* Yıllık izin raporunda personel adı yatay kaydırmada da daima görünür. */
  .pdf-preview table{display:table;min-width:680px}
  .pdf-preview th:first-child,.pdf-preview td:first-child{position:sticky;left:0;z-index:2;min-width:130px;background:#fff;font-weight:800;box-shadow:1px 0 0 #cbd5e1}
  .pdf-preview th:first-child{z-index:3;background:#f1f5f9}
  .laundry-live-panel .card-header{flex-direction:column;align-items:stretch}.laundry-live-panel .card-header .btn{width:100%}
  .laundry-live-meta{grid-template-columns:1fr 1fr}.laundry-live-meta>div:last-child{grid-column:1/-1}
  .public-balance-page .table-wrap table{min-width:680px}
}


/* PBYS 9.2.4 - Çamaşır sayacı */
.laundry-live-card.stopped{border-color:#94a3b8;background:linear-gradient(145deg,#f8fafc,#fff)}
.laundry-live-badge.stopped{background:#e2e8f0;color:#334155}
.laundry-run-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:auto}
.laundry-run-actions .btn:only-child{grid-column:1/-1}
@media(max-width:520px){.laundry-run-actions{grid-template-columns:1fr}}
