:root{
  --bg:#eef2f6;
  --bg-accent:#d7dfe8;
  --surface:rgba(255,255,255,.96);
  --surface-strong:#ffffff;
  --text:#1c2733;
  --muted:#667485;
  --line:rgba(28,39,51,.10);
  --primary:#1f3448;
  --primary-strong:#122130;
  --brand-green:#15c3a5;
  --brand-green-strong:#12af94;
  --secondary:#f4f6f8;
  --success:#2f7d5b;
  --danger:#b54b4b;
  --warning:#9c6a27;
  --shadow:0 10px 30px rgba(16,24,40,.08);
  --radius:14px;
}
*{box-sizing:border-box}
body{
  font-family:"Manrope",sans-serif;
  color:var(--text);
  background:linear-gradient(180deg, #f4f7fa 0%, #edf1f5 100%);
  min-height:100vh;
  transition:.25s ease;
  position:relative;
}
body::before,
body::after{
  display:none;
}
body > *{position:relative;z-index:1}
body.modal-open{
  overflow:hidden;
}
.dark{
  --bg:#0f1722;
  --surface:rgba(18,27,36,.96);
  --surface-strong:#101922;
  --text:#ecf2f8;
  --muted:#93a3b5;
  --line:rgba(255,255,255,.08);
  --primary:#d7e4f1;
  --primary-strong:#f4f7fa;
  --secondary:#17212b;
  --shadow:0 14px 34px rgba(0,0,0,.26);
  background:linear-gradient(180deg, #0e151d 0%, #131d28 100%);
  color:var(--text);
}
.container{
  max-width:1180px;
}
.card{
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:var(--surface);
  box-shadow:var(--shadow);
}
.card.shadow{
  box-shadow:var(--shadow)!important;
}
.brand-mark{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0;
  background:transparent;
  border:none;
  box-shadow:none;
}
.logo{
  height:54px;
  display:block;
  border-radius:10px;
  box-shadow:0 4px 12px rgba(16,24,40,.08);
  mix-blend-mode:normal;
  filter:none;
}
.dark .logo{
  box-shadow:0 6px 14px rgba(0,0,0,.18);
}
h3,h5,b,strong{
  letter-spacing:-.02em;
}
.text-muted{
  color:var(--muted)!important;
}
.form-control,
.form-select,
select.form-control{
  min-height:48px;
  border-radius:10px;
  border:1px solid var(--line);
  background:var(--surface-strong);
  color:var(--text);
  box-shadow:none;
}
.form-control:focus,
.form-select:focus,
select.form-control:focus{
  border-color:rgba(22,50,79,.35);
  box-shadow:0 0 0 4px rgba(22,50,79,.08);
}
.btn{
  border-radius:10px;
  font-weight:700;
  letter-spacing:-.01em;
  border-width:1px;
  padding:.7rem 1rem;
  transition:background .14s ease, color .14s ease, border-color .14s ease;
}
.btn:hover{
  transform:none;
}
.btn-sm{
  border-radius:9px;
  padding:.5rem .8rem;
}
.btn-primary,
.btn-dark,
.btn-success,
.btn-info,
.btn-warning,
.btn-danger{
  border-color:transparent;
  box-shadow:0 10px 24px rgba(21,43,68,.12);
}
.btn-primary{
  background:linear-gradient(135deg, #1f3448 0%, #28465f 100%);
}
.btn-dark{
  background:linear-gradient(135deg, #0f1722 0%, #1f3046 100%);
}
.btn-success{
  background:linear-gradient(135deg, #15c3a5 0%, #12af94 100%);
}
.btn-info{
  background:linear-gradient(135deg, #2f7bbd 0%, #4096df 100%);
  color:#fff;
}
.btn-warning{
  background:linear-gradient(135deg, #c4872f 0%, #e5a746 100%);
  color:#fff;
}
.btn-danger{
  background:#b54b4b;
}
.btn-outline-primary,
.btn-outline-secondary,
.btn-outline-danger,
.btn-outline-dark{
  background:#fff;
  border-color:var(--line);
  color:var(--text);
}
.dark .btn-outline-primary,
.dark .btn-outline-secondary,
.dark .btn-outline-danger,
.dark .btn-outline-dark{
  background:rgba(255,255,255,.03);
  color:var(--text);
}
.table{
  --bs-table-bg:transparent;
  --bs-table-striped-bg:rgba(31,52,72,.02);
  --bs-table-hover-bg:rgba(31,52,72,.04);
  border-collapse:separate;
  border-spacing:0 8px;
  margin-bottom:0;
}
.table thead th{
  border:none;
  color:var(--muted);
  font-size:.82rem;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-weight:800;
  padding-bottom:.35rem;
}
.table tbody tr:hover td{
  border-top-color:rgba(21,195,165,.16);
  border-bottom-color:rgba(21,195,165,.16);
}
.table tbody td{
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  background:#fff;
  vertical-align:middle;
  padding:.9rem .85rem;
}
.dark .table tbody td{
  background:rgba(255,255,255,.02);
}
.table tbody td:first-child{
  border-left:1px solid var(--line);
  border-top-left-radius:16px;
  border-bottom-left-radius:16px;
}
.table tbody td:last-child{
  border-right:1px solid var(--line);
  border-top-right-radius:16px;
  border-bottom-right-radius:16px;
}
.list-group-item{
  border:1px solid var(--line);
  border-radius:10px!important;
  margin-bottom:.45rem;
  background:#fff;
  color:var(--text);
}
.app-shell{
  display:grid;
  grid-template-columns:260px minmax(0,1fr);
  gap:24px;
  align-items:start;
}
.sidebar-panel{
  position:sticky;
  top:18px;
  padding:20px 16px;
  background:
    linear-gradient(180deg, rgba(21,195,165,.10) 0%, rgba(21,195,165,0) 18%),
    linear-gradient(180deg, #223548 0%, #1a2a38 100%);
  border-color:rgba(255,255,255,.06);
}
.sidebar-brand{
  display:flex;
  align-items:center;
  gap:12px;
  margin-bottom:20px;
}
.sidebar-user{
  font-size:1.2rem;
  font-weight:800;
  letter-spacing:-.03em;
  color:#fff;
}
.sidebar-role{
  color:rgba(255,255,255,.68);
  font-size:.9rem;
  margin-top:2px;
}
.sidebar-nav{
  display:flex;
  flex-direction:column;
  gap:10px;
}
.nav-link-panel{
  display:flex;
  align-items:center;
  padding:12px 14px;
  border-radius:10px;
  color:rgba(255,255,255,.92);
  text-decoration:none;
  background:transparent;
  border:1px solid transparent;
  font-weight:700;
}
.nav-link-main{
  display:flex;
  align-items:center;
  gap:0;
  min-width:0;
}
.nav-icon{
  display:none;
}
.nav-copy{
  display:flex;
  flex-direction:column;
  min-width:0;
}
.nav-link-panel:hover{
  background:rgba(255,255,255,.07);
  border-color:rgba(21,195,165,.18);
}
.nav-link-panel.is-active{
  background:rgba(255,255,255,.09);
  border-color:rgba(21,195,165,.28);
  box-shadow:none;
}
.nav-link-panel.muted{
  opacity:.92;
}
.nav-link-panel .nav-note{
  font-size:.76rem;
  font-weight:600;
  opacity:.62;
}
.main-panel{
  padding:28px;
  background:
    linear-gradient(180deg, rgba(21,195,165,.035) 0%, rgba(21,195,165,0) 20%),
    rgba(255,255,255,.97);
}
.topbar{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  margin-bottom:20px;
  padding-bottom:14px;
  border-bottom:1px solid rgba(21,195,165,.10);
}
.topbar-actions{
  display:flex;
  align-items:center;
  gap:10px;
}
.hero-block{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.hero-title{
  font-size:2rem;
  font-weight:800;
  letter-spacing:-.04em;
  margin:0;
}
.hero-subtitle{
  color:var(--muted);
  margin:0;
}
.metric-pill{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:9px 12px;
  border-radius:10px;
  background:rgba(21,195,165,.06);
  color:var(--text);
  font-weight:700;
  border:1px solid rgba(21,195,165,.14);
}
.metric-stack{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}
.data-chip{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:0;
  border-radius:0;
  background:transparent;
  border:none;
  color:var(--text);
  font-size:.92rem;
  font-weight:700;
}
.data-chip.muted{
  color:var(--muted);
  font-weight:600;
}
.hours-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:64px;
  padding:6px 10px;
  border-radius:9px;
  background:#f4f6f8;
  border:1px solid var(--line);
  font-weight:800;
}
.table-date{
  display:flex;
  flex-direction:column;
  gap:4px;
}
.table-date strong{
  font-size:.96rem;
}
.table-date span{
  color:var(--muted);
  font-size:.78rem;
  text-transform:uppercase;
  letter-spacing:.08em;
}
.time-stack{
  display:flex;
  flex-direction:column;
  gap:4px;
}
.time-range{
  display:inline-flex;
  align-items:center;
  gap:8px;
  color:var(--text);
  font-weight:700;
}
.time-range small{
  color:var(--muted);
  font-size:.78rem;
  min-width:36px;
}
.action-group{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.empty-state{
  padding:28px 18px;
  border-radius:12px;
  background:#f8fafb;
  border:1px dashed var(--line);
  text-align:center;
}
.empty-state h4{
  margin:0 0 8px;
  font-size:1.1rem;
}
.empty-state p{
  margin:0;
  color:var(--muted);
}
.section-card{
  padding:18px;
  border-radius:12px;
  background:
    linear-gradient(180deg, rgba(21,195,165,.028) 0%, rgba(21,195,165,0) 22%),
    #fbfcfd;
  border:1px solid var(--line);
  margin-bottom:18px;
}
.section-title{
  font-size:.82rem;
  text-transform:uppercase;
  letter-spacing:.12em;
  font-weight:800;
  color:var(--muted);
  margin-bottom:14px;
}
.section-title::after{
  content:"";
  display:block;
  width:44px;
  height:3px;
  margin-top:10px;
  border-radius:999px;
  background:linear-gradient(90deg, var(--brand-green) 0%, #76dfcf 100%);
}
.table-wrap{
  padding:10px 0 0;
}
.dashboard-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:18px;
}
.dashboard-grid .section-card{
  margin-bottom:0;
  height:100%;
}
.dashboard-grid .section-card.full{
  grid-column:1 / -1;
}
.toolbar-inline{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}
.form-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:12px;
}
.form-grid .full{
  grid-column:1 / -1;
}
.checklist-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:10px 16px;
}
.checklist-grid.compact-grid{
  grid-template-columns:repeat(7, minmax(0, 1fr));
  gap:8px;
}
.form-check.compact{
  margin:0;
  min-height:40px;
  border:1px solid var(--line-soft);
  border-radius:12px;
  background:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  padding:0 8px;
  font-weight:700;
}
.surface-note{
  padding:12px 14px;
  border-radius:10px;
  background:rgba(21,195,165,.05);
  border:1px solid rgba(21,195,165,.12);
  color:var(--muted);
  font-size:.95rem;
}
.login-shell{
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:32px 0;
  background:
    linear-gradient(135deg, rgba(31,52,72,.96) 0%, rgba(31,52,72,.96) 32%, transparent 32%),
    linear-gradient(180deg, #f4f7fa 0%, #edf1f5 100%);
}
.login-card{
  padding:0;
  overflow:hidden;
  border:none;
}
.login-grid{
  display:grid;
  grid-template-columns:1fr 1.05fr;
  min-height:500px;
}
.login-aside{
  background:
    linear-gradient(180deg, rgba(21,195,165,.12) 0%, rgba(21,195,165,0) 100%),
    linear-gradient(180deg, #1f3448 0%, #1a2a38 100%);
  color:#fff;
  padding:40px 36px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
}
.login-brand-title{
  font-size:2.15rem;
  font-weight:800;
  letter-spacing:-.04em;
  margin:20px 0 12px;
}
.login-brand-copy{
  color:rgba(255,255,255,.74);
  max-width:360px;
  line-height:1.6;
}
.login-metrics{
  display:grid;
  gap:12px;
}
.login-metric{
  padding:15px 16px;
  border:1px solid rgba(255,255,255,.10);
  border-radius:12px;
  background:rgba(255,255,255,.05);
}
.login-metric strong{
  display:block;
  font-size:1.2rem;
  margin-top:4px;
}
.login-panel{
  padding:44px 40px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  background:
    linear-gradient(180deg, rgba(21,195,165,.06) 0%, rgba(21,195,165,0) 18%),
    #fbfcfd;
}
.login-panel h3{
  margin-bottom:8px;
  font-size:2rem;
}
.login-panel p{
  color:var(--muted);
  margin-bottom:20px;
}
.login-panel form{
  margin-top:0;
}
.login-divider{
  height:4px;
  width:64px;
  border-radius:999px;
  background:linear-gradient(90deg, var(--brand-green) 0%, #5cd6c0 100%);
  margin:0 0 18px;
}
.lang-switch{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:6px;
  border:1px solid var(--line);
  border-radius:999px;
  background:#fff;
}
.lang-switch button{
  border:none;
  background:transparent;
  border-radius:999px;
  padding:6px 10px;
  line-height:1;
  font-size:1rem;
}
.lang-switch button.is-active{
  background:rgba(21,195,165,.10);
  box-shadow:inset 0 0 0 1px rgba(21,195,165,.18);
}
.page-actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}
.pdf-option-list{
  display:flex;
  flex-direction:column;
  gap:8px;
}
.document-tabs{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}
.doc-tab{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:40px;
  padding:0 14px;
  border-radius:999px;
  border:1px solid rgba(28,39,51,.10);
  background:#fff;
  color:#223548;
  font-weight:800;
  text-decoration:none;
}
.doc-tab.is-active{
  background:#183153;
  border-color:#183153;
  color:#fff;
}
.pdf-option-row{
  display:grid;
  grid-template-columns:28px 190px 140px minmax(280px,1fr);
  gap:12px;
  align-items:center;
  padding:12px 14px;
  border:1px solid rgba(31,52,72,.10);
  border-radius:10px;
  background:#fff;
}
.pdf-option-row:hover{
  border-color:rgba(21,195,165,.22);
  background:rgba(21,195,165,.03);
}
.pdf-option-main{
  font-weight:700;
}
.pdf-option-muted{
  color:var(--muted);
  font-size:.9rem;
  white-space:normal;
  overflow-wrap:break-word;
  word-break:normal;
}
.pdf-option-status{
  display:inline-flex;
  align-items:center;
  margin-top:6px;
  padding:5px 10px;
  border-radius:999px;
  font-size:.8rem;
  font-weight:700;
  line-height:1.2;
  background:#fff3e8;
  border:1px solid rgba(198,142,28,.28);
  color:#9c6a27;
}
.dark .list-group-item{
  background:rgba(255,255,255,.03);
}
.alert{
  border:none;
  border-radius:10px;
  background:#eef6f1;
  color:var(--text);
  box-shadow:none;
}
.row.g-2 > *{
  margin-top:.25rem;
}
form + form{
  margin-top:1rem;
}
@media (max-width: 768px){
  .app-shell{
    grid-template-columns:1fr;
  }
  .sidebar-panel{
    position:static;
  }
  .main-panel{
    padding:20px;
  }
  .topbar{
    flex-direction:column;
  }
  .topbar-actions{
    width:100%;
    justify-content:space-between;
  }
  .dashboard-grid,
  .form-grid,
  .checklist-grid{
    grid-template-columns:1fr;
  }
  .login-grid{
    grid-template-columns:1fr;
  }
  .login-aside,
  .login-panel{
    padding:24px 20px;
  }
  .pdf-option-row{
    grid-template-columns:28px 1fr;
  }
  .container{
    padding-left:14px;
    padding-right:14px;
  }
  .card{
    border-radius:20px;
  }
  .btn{
    width:100%;
    margin-bottom:.45rem;
  }
  .btn-sm{
    width:auto;
    margin-bottom:0;
  }
  .table{
    font-size:.92rem;
  }
  .modal-overlay{
    padding:76px 10px 18px;
  }
  .sheet-modal-wrap{
    min-height:auto;
    padding-top:8px;
  }
}

/* --- 2026 refresh: cleaner app shell inspired by the supplied references --- */
.app-frame{
  min-height:100vh;
  background:linear-gradient(180deg, #f6f9fc 0%, #eef3f8 100%);
}
.app-topbar{
  position:sticky;
  top:0;
  z-index:20;
  background:rgba(255,255,255,.94);
  backdrop-filter:blur(18px);
  border-bottom:1px solid rgba(28,39,51,.08);
}
.app-topbar-inner{
  max-width:880px;
  margin:0 auto;
  padding:18px 22px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
}
.app-userbar{
  display:flex;
  align-items:center;
  gap:12px;
  min-width:0;
}
.app-brand-logo{
  min-width:68px;
  height:46px;
  padding:6px 12px;
  border-radius:14px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#fff;
  border:1px solid rgba(28,39,51,.08);
  box-shadow:0 12px 26px rgba(16,24,40,.08);
}
.app-brand-logo img{
  max-height:26px;
  width:auto;
  display:block;
}
.app-user-meta{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}
.app-user-name{
  font-size:1.05rem;
  font-weight:800;
  color:#1c2733;
}
.app-user-role{
  display:inline-flex;
  align-items:center;
  min-height:28px;
  padding:4px 12px;
  border-radius:10px;
  border:1px solid rgba(28,39,51,.10);
  background:#fff;
  color:#344256;
  font-size:.88rem;
  font-weight:700;
}
.app-toolbar{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.mobile-menu{
  position:relative;
  display:block;
}
.mobile-menu summary{
  list-style:none;
}
.mobile-menu summary::-webkit-details-marker{
  display:none;
}
.menu-trigger{
  gap:8px;
  padding:0 14px;
}
.menu-trigger span{
  font-size:.92rem;
}
.mobile-menu-panel{
  position:absolute;
  right:0;
  top:54px;
  width:min(320px, calc(100vw - 28px));
  padding:12px;
  border-radius:16px;
  border:1px solid rgba(28,39,51,.10);
  background:#fff;
  box-shadow:0 18px 42px rgba(16,24,40,.12);
  display:flex;
  flex-direction:column;
  gap:8px;
}
.mobile-menu-link{
  min-height:44px;
  padding:0 14px;
  border-radius:12px;
  border:1px solid rgba(28,39,51,.08);
  background:#f8fbff;
  color:#314154;
  text-decoration:none;
  display:flex;
  align-items:center;
  font-weight:700;
}
.mobile-menu-link.is-active{
  background:#3f7ceb;
  color:#fff;
  border-color:#3f7ceb;
}
.icon-btn{
  min-width:44px;
  height:44px;
  padding:0 14px;
  border-radius:12px;
  border:1px solid rgba(28,39,51,.10);
  background:#fff;
  color:#1f3448;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-decoration:none;
  font-weight:700;
}
.icon-btn:hover{
  border-color:rgba(60,121,238,.24);
  color:#244b85;
}
.app-nav-strip{
  max-width:880px;
  margin:16px auto 0;
  padding:0 22px;
  display:none;
  gap:10px;
  flex-wrap:wrap;
}
.app-nav-link{
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-height:42px;
  padding:0 14px;
  border-radius:12px;
  border:1px solid rgba(28,39,51,.09);
  background:#fff;
  color:#526276;
  text-decoration:none;
  font-weight:700;
}
.app-nav-link.is-active{
  background:#3f7ceb;
  border-color:#3f7ceb;
  color:#fff;
  box-shadow:0 16px 32px rgba(63,124,235,.22);
}
.app-content{
  max-width:880px;
  margin:18px auto 0;
  padding:0 22px 32px;
}
.page-header-card{
  padding:22px 24px;
  border-radius:22px;
  border:1px solid rgba(28,39,51,.08);
  background:#fff;
  box-shadow:0 14px 36px rgba(16,24,40,.08);
  margin-bottom:18px;
}
.page-header-card h1{
  margin:0;
  font-size:2rem;
  letter-spacing:-.04em;
}
.page-header-card p{
  margin:0 0 10px;
  color:#718197;
}
.home-stack{
  display:flex;
  flex-direction:column;
  gap:14px;
}
.status-card{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:16px;
  align-items:center;
  padding:22px 24px;
  border-radius:18px;
  background:linear-gradient(135deg, #4a84f4 0%, #2f68db 100%);
  color:#fff;
  box-shadow:0 18px 38px rgba(63,124,235,.24);
}
.status-card-label{
  font-size:1rem;
  opacity:.9;
}
.status-card-value{
  font-size:1.15rem;
  font-weight:800;
  margin-top:4px;
}
.status-card .btn{
  min-width:170px;
  border-radius:14px;
  background:#fff;
  color:#2f68db;
  border:none;
  box-shadow:none;
}
.week-card{
  padding:14px 16px;
  border-radius:16px;
  border:1px solid rgba(28,39,51,.08);
  background:#fff;
  box-shadow:0 14px 36px rgba(16,24,40,.08);
}
.week-card-grid{
  display:grid;
  grid-template-columns:44px minmax(0,1fr) 44px;
  align-items:center;
  gap:12px;
}
.week-card-body{
  display:grid;
  grid-template-columns:minmax(0,1fr) 228px;
  align-items:center;
  gap:14px;
}
.week-nav-btn{
  width:44px;
  height:44px;
  border-radius:10px;
  border:1px solid rgba(28,39,51,.10);
  background:#fff;
  color:#1c2733;
  text-decoration:none;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:1.35rem;
}
.week-card-center{
  text-align:left;
}
.week-card-center .week-label{
  font-size:.92rem;
  color:#698099;
}
.week-card-center .week-range{
  font-size:1.05rem;
  font-weight:800;
  color:#153564;
  margin-top:2px;
}
.week-stats{
  margin-top:10px;
  display:flex;
  align-items:flex-start;
  justify-content:flex-start;
  gap:18px;
  flex-wrap:wrap;
}
.week-stat{
  text-align:left;
}
.week-stat-value{
  font-size:1rem;
  font-weight:800;
  color:#153564;
}
.week-stat-value.primary{
  font-size:1.5rem;
  line-height:1;
  color:#4a84f4;
}
.week-stat-label{
  color:#698099;
  font-size:.85rem;
}
.mini-calendar{
  padding:10px 12px;
  border-radius:14px;
  background:#f8fbff;
  border:1px solid rgba(28,39,51,.08);
}
.mini-calendar-title{
  font-size:.86rem;
  font-weight:800;
  color:#42556c;
  text-align:center;
  margin-bottom:8px;
}
.mini-calendar-weekdays,
.mini-calendar-grid{
  display:grid;
  grid-template-columns:repeat(7, minmax(0,1fr));
  gap:6px;
}
.mini-calendar-weekdays span{
  text-align:center;
  font-size:.68rem;
  font-weight:800;
  color:#7a899d;
}
.mini-day{
  position:relative;
  min-height:26px;
  border-radius:8px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:.78rem;
  font-weight:700;
  color:#51667e;
  background:#fff;
  text-decoration:none;
}
.mini-day span{
  width:20px;
  height:20px;
  border-radius:999px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
}
.mini-day.blank{
  background:transparent;
}
.mini-day.in-range{
  background:#eef4ff;
  color:#2f5ca8;
}
.mini-day.has-entry span{
  background:#17c1a4;
  color:#fff;
  box-shadow:0 8px 16px rgba(23,193,164,.24);
}
.mini-day.today{
  box-shadow:inset 0 0 0 1px rgba(47,92,168,.28);
}
.mini-day.today span{
  box-shadow:inset 0 0 0 1px rgba(47,92,168,.24);
}
.action-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) repeat(4,64px);
  gap:10px;
}
.action-row .btn-primary{
  min-height:48px;
  border-radius:12px;
  background:linear-gradient(135deg, #4a84f4 0%, #3f7ceb 100%);
}
.action-icon{
  width:54px;
  height:48px;
  border-radius:12px;
  border:1px solid rgba(28,39,51,.10);
  background:#fff;
  color:#1c2733;
  display:flex;
  align-items:center;
  justify-content:center;
  text-decoration:none;
  font-size:1rem;
  box-shadow:0 10px 24px rgba(16,24,40,.06);
}
.filter-card{
  padding:14px 16px;
  border-radius:16px;
  border:1px solid rgba(28,39,51,.08);
  background:#fff;
  box-shadow:0 14px 36px rgba(16,24,40,.08);
}
.record-list{
  display:flex;
  flex-direction:column;
  gap:10px;
}
.record-card{
  display:grid;
  grid-template-columns:72px minmax(0,1fr) auto;
  border-radius:16px;
  overflow:hidden;
  border:1px solid rgba(28,39,51,.08);
  background:#fff;
  box-shadow:0 14px 36px rgba(16,24,40,.08);
}
.record-date{
  background:linear-gradient(180deg, #4a84f4 0%, #3f7ceb 100%);
  color:#fff;
  padding:12px 8px;
  text-align:center;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.record-date strong{
  font-size:1.55rem;
  line-height:1;
  font-weight:800;
}
.record-date span{
  margin-top:4px;
  font-size:.8rem;
  font-weight:700;
}
.record-body{
  padding:12px 12px;
  min-width:0;
}
.record-title{
  font-size:1rem;
  font-weight:800;
  color:#163564;
}
.record-subtitle{
  color:#6f8197;
  margin-top:2px;
  font-size:.92rem;
}
.record-meta{
  margin-top:8px;
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  color:#28405b;
  font-size:.92rem;
}
.record-hours{
  display:inline-flex;
  align-items:center;
  min-height:24px;
  padding:3px 9px;
  border-radius:8px;
  background:#f4f7fb;
  font-weight:800;
  font-size:.85rem;
}
.record-tags{
  display:inline-flex;
  align-items:center;
  gap:6px;
  flex-wrap:wrap;
}
.record-tag{
  display:inline-flex;
  align-items:center;
  min-height:24px;
  padding:3px 9px;
  border-radius:999px;
  border:1px solid rgba(28,39,51,.10);
  background:#f6f8fb;
  color:#264261;
  font-weight:800;
  font-size:.78rem;
}
.record-tag.folha-verde{
  background:rgba(21,195,165,.10);
  border-color:rgba(21,195,165,.24);
  color:#0f7664;
}
.record-tag.folha-azul{
  background:rgba(47,123,189,.10);
  border-color:rgba(47,123,189,.22);
  color:#1d5f97;
}
.record-tag.ajuda-tag{
  background:rgba(156,106,39,.10);
  border-color:rgba(156,106,39,.22);
  color:#8d5b1f;
}
.record-tag.status-emitido{
  background:rgba(47,123,189,.10);
  border-color:rgba(47,123,189,.20);
  color:#245f97;
}
.record-tag.status-pendiente-firma{
  background:rgba(198,142,28,.12);
  border-color:rgba(198,142,28,.24);
  color:#8a5a10;
}
.record-tag.status-firmado{
  background:rgba(21,195,165,.10);
  border-color:rgba(21,195,165,.24);
  color:#0f7664;
}
.record-tag.status-facturado{
  background:rgba(219,155,21,.12);
  border-color:rgba(219,155,21,.22);
  color:#956200;
}
.record-tag.status-cobrado{
  background:rgba(48,152,82,.12);
  border-color:rgba(48,152,82,.22);
  color:#216638;
}
.record-tag.status-anulado{
  background:rgba(181,75,75,.10);
  border-color:rgba(181,75,75,.22);
  color:#9f3838;
}
.record-tag.status-sin-emitir{
  background:rgba(111,129,151,.10);
  border-color:rgba(111,129,151,.20);
  color:#62748a;
}
.record-tag.issue-duplicate,
.record-tag.issue-overlap,
.record-tag.issue-closed{
  background:rgba(181,75,75,.10);
  border-color:rgba(181,75,75,.22);
  color:#9f3838;
}
.record-select{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin-bottom:8px;
  padding:6px 10px;
  border-radius:12px;
  background:#f7faff;
  border:1px solid rgba(28,39,51,.08);
  color:#5d7188;
  font-size:.8rem;
  font-weight:800;
}
.record-select input{
  width:16px;
  height:16px;
  accent-color:#3f7ceb;
}
.record-user{
  color:#6f8197;
  font-weight:700;
  font-size:.85rem;
}
.record-actions{
  padding:12px 12px 12px 0;
  display:flex;
  gap:8px;
  align-items:flex-start;
}
.record-actions a{
  width:34px;
  height:34px;
  border-radius:10px;
  border:1px solid rgba(28,39,51,.10);
  background:#fff;
  color:#223548;
  display:flex;
  align-items:center;
  justify-content:center;
  text-decoration:none;
}
.record-actions a.danger{
  color:#db4f4f;
}
.sheet-modal-wrap{
  min-height:calc(100vh - 180px);
  display:flex;
  align-items:flex-start;
  justify-content:center;
  padding-top:14px;
}
.modal-page-shell{
  position:relative;
  min-height:calc(100vh - 170px);
  overflow:hidden;
}
.modal-page-shell .modal-background{
  filter:blur(1px);
  opacity:.32;
  pointer-events:none;
  user-select:none;
  max-height:calc(100vh - 170px);
  overflow:hidden;
}
.modal-overlay{
  position:fixed;
  inset:0;
  z-index:40;
  background:rgba(14,22,34,.36);
  display:flex;
  align-items:flex-start;
  justify-content:center;
  padding:92px 16px 24px;
  overflow:auto;
}
.sheet-modal{
  width:min(560px, 100%);
  max-height:calc(100vh - 116px);
  padding:28px;
  border-radius:22px;
  background:#fff;
  border:1px solid rgba(28,39,51,.08);
  box-shadow:0 18px 44px rgba(15,23,34,.12);
  overflow:auto;
}
.modal-center-shell{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:center;
}
.sheet-modal-form{
  width:min(640px, 100%);
  max-height:none;
  overflow:visible;
  padding:22px 22px 18px;
}
.compact-empty{
  padding:20px 16px;
}
.sheet-modal-form .sheet-modal-head{
  margin-bottom:12px;
}
.sheet-modal-form .sheet-modal-head h2{
  font-size:1.65rem;
}
.sheet-modal-form .sheet-modal-head p{
  margin-top:4px;
  font-size:.95rem;
}
.sheet-modal-form .form-control{
  min-height:44px;
}
.sheet-modal-form .form-label{
  margin-bottom:6px;
  font-size:.95rem;
  font-weight:700;
}
.sheet-modal-form .time-grid{
  gap:10px 16px;
}
.sheet-modal-form .page-actions{
  margin-top:12px!important;
}
.compact-form-grid{
  gap:12px;
  align-items:stretch;
}
.surface-check{
  min-height:44px;
  padding:12px 14px;
  border-radius:12px;
  border:1px solid rgba(28,39,51,.08);
  background:#f8fbfd;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.surface-check .form-check{
  display:flex;
  align-items:center;
  gap:8px;
}
.team-picker{
  padding:10px 12px;
}
.team-picker summary{
  cursor:pointer;
  font-weight:700;
}
.team-picker[open] .checklist-grid{
  margin-top:12px;
}
.repeat-builder{
  padding:12px 14px;
}
.repeat-builder summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  font-size:.96rem;
  list-style:none;
}
.repeat-builder summary::-webkit-details-marker{
  display:none;
}
.repeat-builder summary::after{
  content:"+";
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:24px;
  height:24px;
  border-radius:999px;
  background:rgba(24,49,83,.08);
  color:#183153;
  font-size:1rem;
  font-weight:900;
  flex:0 0 auto;
}
.repeat-builder[open] summary::after{
  content:"−";
}
.repeat-builder-body{
  margin-top:12px;
}
.repeat-actions{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:8px;
}
.repeat-actions .btn{
  width:100%;
  margin-bottom:0;
}
.repeat-days-grid .form-check.compact{
  min-height:42px;
}
.entry-field-card{
  padding:12px 14px;
  border-radius:16px;
  border:1px solid var(--line-soft);
  background:#f9fbfe;
  display:flex;
  flex-direction:column;
  gap:6px;
}
.entry-field-card .form-control,
.entry-field-card select.form-control{
  margin-bottom:0!important;
  background:#fff;
}
.entry-section-card{
  margin:0!important;
}
.entry-form-body{
  display:flex;
  flex-direction:column;
  gap:10px;
}
.entry-form-body > .form-control,
.entry-form-body > select.form-control{
  margin-bottom:0!important;
}
.entry-form-body .time-grid > div,
.entry-form-body .form-grid > div{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:6px;
}
.entry-form-body .time-grid .form-control,
.entry-form-body .form-grid .form-control,
.entry-form-body .form-grid select.form-control{
  margin-bottom:0!important;
}
.entry-form-body .surface-check{
  margin-bottom:0!important;
}
.auto-ajuda-card{
  align-items:flex-start;
  gap:6px;
}
.auto-ajuda-card .form-label{
  margin-bottom:0;
}
.entry-form-body .surface-note{
  background:#f9fbfe;
  border:1px solid var(--line-soft);
  color:var(--text-soft);
}
.entry-form-body .surface-note summary{
  color:var(--text-strong);
}
.entry-form-body .repeat-builder-body{
  display:flex;
  flex-direction:column;
  gap:14px;
}
.form-footnote{
  margin-top:10px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
}
.form-footnote-text{
  color:#728299;
  font-size:.92rem;
  line-height:1.45;
}
.sheet-modal-wide{
  width:min(800px, 100%);
}
.sheet-modal-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  margin-bottom:20px;
}
.sheet-modal-head h2{
  margin:0;
  font-size:1.95rem;
  letter-spacing:-.04em;
}
.sheet-modal-head p{
  margin:6px 0 0;
  color:#728299;
}
.sheet-modal-close{
  width:40px;
  height:40px;
  border-radius:12px;
  border:1px solid rgba(28,39,51,.10);
  background:#fff;
  color:#1c2733;
  text-decoration:none;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:1.35rem;
}
.time-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  gap:14px 20px;
}
.admin-tabs{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-bottom:18px;
  overflow:auto;
  padding-bottom:2px;
}
.admin-tab{
  min-width:170px;
  min-height:52px;
  padding:0 18px;
  border-radius:14px;
  border:1px solid rgba(28,39,51,.08);
  background:#f5f8fc;
  color:#6b7d93;
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight:800;
}
.admin-tab.active{
  background:#fff;
  color:#111b28;
  box-shadow:0 10px 24px rgba(16,24,40,.06);
}
.admin-grid{
  display:grid;
  gap:18px;
}
.admin-section{
  padding:22px;
  border-radius:18px;
  border:1px solid rgba(28,39,51,.08);
  background:#fff;
  box-shadow:0 14px 36px rgba(16,24,40,.08);
}
.admin-section h3{
  margin:0 0 16px;
  font-size:1.2rem;
}
.settings-grid{
  display:grid;
  gap:18px;
}
.query-toolbar{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  align-items:center;
  margin-bottom:12px;
}
.settings-card{
  padding:22px;
  border-radius:18px;
  border:1px solid rgba(28,39,51,.08);
  background:#fff;
  box-shadow:0 14px 36px rgba(16,24,40,.08);
}
.settings-card h3{
  margin:0 0 14px;
  font-size:1.2rem;
}
.history-list{
  display:flex;
  flex-direction:column;
  gap:12px;
}
.history-card{
  padding:18px 18px 16px;
  border-radius:18px;
  border:1px solid rgba(28,39,51,.08);
  background:#fff;
  box-shadow:0 14px 36px rgba(16,24,40,.08);
}
.history-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
}
.history-badge{
  display:inline-flex;
  align-items:center;
  min-height:30px;
  padding:4px 10px;
  border-radius:999px;
  background:#eef4ff;
  color:#325ea7;
  font-size:.85rem;
  font-weight:800;
}
.history-meta{
  margin-top:12px;
  display:grid;
  grid-template-columns:repeat(3, minmax(0,1fr));
  gap:12px;
  color:#65758a;
}
.history-detail{
  margin-top:12px;
  padding-top:12px;
  border-top:1px solid rgba(28,39,51,.08);
  color:#314154;
}
.top-actions-inline{
  display:flex;
  gap:10px;
  align-items:center;
  flex-wrap:wrap;
}
.admin-list-item{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:14px 16px;
  border-radius:14px;
  background:#f4f7fb;
  margin-bottom:10px;
}
.admin-list-item:last-child{
  margin-bottom:0;
}
.pdf-calibration-grid{
  grid-template-columns:minmax(360px, 430px) minmax(0,1fr);
  align-items:start;
}
.pdf-calibration-form{
  position:static;
}
.pdf-calibration-nav{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
  margin-bottom:14px;
}
.pdf-calibration-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:36px;
  padding:0 14px;
  border-radius:999px;
  border:1px solid rgba(28,39,51,.08);
  background:#f7fbff;
  color:#35506e;
  text-decoration:none;
  font-weight:800;
  font-size:.82rem;
}
.pdf-calibration-link:hover{
  background:#eef5fd;
  color:#1f3448;
}
.pdf-layout-group{
  padding:14px 14px 12px;
  border-radius:14px;
  border:1px solid rgba(28,39,51,.08);
  background:#f8fbfe;
  margin-bottom:14px;
}
.pdf-layout-group-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:10px;
  flex-wrap:wrap;
  margin-bottom:12px;
}
.pdf-layout-group h4{
  margin:0;
  font-size:.98rem;
}
.pdf-layout-selector{
  width:min(280px, 100%);
  min-height:42px;
}
.pdf-layout-fields{
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  gap:10px 12px;
}
.pdf-layout-fields.single{
  grid-template-columns:1fr;
}
.pdf-layout-field{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.pdf-layout-field[hidden]{
  display:none!important;
}
.pdf-layout-label{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
}
.pdf-layout-field span{
  font-size:.82rem;
  color:#6a7b90;
  font-weight:700;
}
.pdf-layout-value{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:52px;
  min-height:24px;
  padding:0 8px;
  border-radius:999px;
  background:#edf3fb;
  color:#29415e;
  font-size:.76rem;
  font-weight:800;
  line-height:1;
}
.pdf-layout-control{
  display:grid;
  grid-template-columns:auto auto minmax(0,1fr) auto auto;
  gap:4px;
  align-items:center;
}
.pdf-layout-control input{
  text-align:center;
}
.pdf-step-btn{
  min-width:32px;
  min-height:30px;
  padding:0 6px;
  border:none;
  border-radius:9px;
  background:#edf3fb;
  color:#29415e;
  font-weight:800;
  font-size:.72rem;
  line-height:1;
}
.pdf-layout-actions{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  margin-top:14px;
}
.pdf-copy-form{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  margin-top:10px;
}
.pdf-copy-form .form-control{
  width:min(240px, 100%);
  min-height:42px;
}
.pdf-preview-toolbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  flex-wrap:wrap;
  margin-bottom:12px;
}
.pdf-preview-toolbar-right{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}
.pdf-preview-toggle{
  display:inline-flex;
  align-items:center;
  gap:8px;
  color:#6a7b90;
  font-size:.82rem;
  font-weight:700;
}
.pdf-preview-toggle input{
  width:16px;
  height:16px;
}
.pdf-preview-status{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:30px;
  padding:0 10px;
  border-radius:999px;
  background:#eef4fb;
  color:#35506e;
  font-size:.76rem;
  font-weight:800;
}
.pdf-preview-status.is-dirty{
  background:#fff3db;
  color:#946200;
}
.pdf-preview-section{
  position:sticky;
  top:96px;
  align-self:start;
  height:fit-content;
  min-height:860px;
}
.pdf-preview-header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  margin-bottom:14px;
}
.pdf-preview-frame{
  width:100%;
  min-height:760px;
  height:calc(100vh - 190px);
  border:1px solid rgba(28,39,51,.08);
  border-radius:16px;
  background:#f3f6fb;
}
.empty-block{
  padding:28px 20px;
  text-align:center;
  color:#73839a;
  border:1px dashed rgba(28,39,51,.15);
  border-radius:16px;
  background:#fafcff;
}
.login-shell{
  background:linear-gradient(180deg, #243d73 0%, #243d73 100%);
  padding:24px 16px;
}
.login-card{
  width:min(420px, 100%);
  margin:0 auto;
  border-radius:24px;
  background:rgba(255,255,255,.10);
  box-shadow:none!important;
}
.login-grid{
  display:block;
  min-height:auto;
}
.login-aside{
  display:none;
}
.login-panel{
  position:relative;
  padding:34px 28px 28px;
  border-radius:24px;
  background:rgba(255,255,255,.10);
  color:#fff;
}
.login-panel h3,
.login-panel p{
  color:#fff;
  text-align:center;
}
.login-panel h3{
  font-size:2rem;
}
.login-divider{
  margin:0 auto 18px;
  background:linear-gradient(90deg, #46d9be 0%, #85eddc 100%);
}
.login-brand-center{
  display:flex;
  justify-content:center;
  margin-bottom:18px;
}
.login-panel .form-control{
  background:rgba(255,255,255,.18);
  border-color:rgba(255,255,255,.16);
  color:#fff;
}
.login-panel .form-control::placeholder{
  color:rgba(255,255,255,.82);
}
.login-panel .btn-primary{
  background:linear-gradient(135deg, #4a84f4 0%, #3f7ceb 100%);
}
.login-lang-float{
  position:absolute;
  top:18px;
  right:18px;
}
.login-panel .lang-switch{
  background:rgba(255,255,255,.14);
  border-color:rgba(255,255,255,.15);
}
.login-note{
  margin-top:16px;
  color:rgba(255,255,255,.72);
  text-align:center;
  font-size:.92rem;
}
.pdf-option-row{
  grid-template-columns:28px 180px 120px minmax(0,1fr);
}
.pdf-option-main,
.pdf-option-muted{
  writing-mode:horizontal-tb;
}
.dark .app-topbar{
  background:rgba(15,23,34,.88);
  border-bottom-color:rgba(255,255,255,.08);
}
.dark .app-user-role,
.dark .icon-btn,
.dark .app-nav-link,
.dark .page-header-card,
.dark .week-card,
.dark .filter-card,
.dark .record-card,
.dark .sheet-modal,
.dark .admin-section{
  background:#111c27;
  color:var(--text);
}
.dark .record-actions a,
.dark .sheet-modal-close,
.dark .week-nav-btn,
.dark .action-icon{
  background:#0f1822;
  color:var(--text);
}
@media (max-width: 768px){
  .app-topbar-inner,
  .app-content{
    padding-left:14px;
    padding-right:14px;
  }
  .app-topbar-inner{
    flex-direction:row;
    align-items:center;
  }
  .app-toolbar{
    justify-content:flex-end;
    gap:8px;
  }
  .icon-btn{
    min-width:40px;
    height:40px;
    padding:0 10px;
    border-radius:10px;
  }
  .app-brand-logo{
    min-width:58px;
    height:42px;
    padding:6px 10px;
    border-radius:12px;
  }
  .app-brand-logo img{
    max-height:22px;
  }
  .menu-trigger span{
    display:none;
  }
  .app-user-name{
    font-size:.98rem;
  }
  .app-user-role{
    font-size:.8rem;
    padding:3px 10px;
  }
  .action-row{
    grid-template-columns:repeat(2, minmax(0,1fr));
  }
  .action-row .btn-primary{
    grid-column:1 / -1;
  }
  .record-card{
    grid-template-columns:72px minmax(0,1fr);
  }
  .record-actions{
    grid-column:1 / -1;
    padding:0 14px 14px;
    justify-content:flex-end;
  }
  .status-card{
    grid-template-columns:1fr;
  }
  .status-card .btn{
    width:100%;
  }
  .week-card-grid{
    grid-template-columns:44px minmax(0,1fr) 44px;
    gap:10px;
  }
  .week-card-body{
    grid-template-columns:1fr;
  }
  .mini-calendar{
    order:2;
  }
  .admin-tab{
    min-width:140px;
    min-height:46px;
    padding:0 14px;
  }
  .sheet-modal{
    padding:22px 18px;
    border-radius:20px;
  }
  .modal-overlay{
    padding-top:76px;
  }
  .sheet-modal-form{
    padding:18px 16px 16px;
  }
  .history-meta{
    grid-template-columns:1fr;
  }
  .time-grid{
    grid-template-columns:1fr;
  }
  .sheet-modal{
    max-height:calc(100vh - 92px);
  }
  .login-panel{
    padding:28px 20px 24px;
  }
  .login-lang-float{
    position:static;
    display:flex;
    justify-content:center;
    margin-bottom:18px;
  }
}
/* --- 2026 refinement: softer white/blue system inspired by the referenced frontend --- */
:root{
  --page-bg:#f4f7fc;
  --surface-card:#ffffff;
  --surface-soft:#f7faff;
  --line-soft:#e4ebf4;
  --text-strong:#16253a;
  --text-soft:#71839b;
  --blue-500:#3f7ceb;
  --blue-600:#2f68db;
  --green-400:#15c3a5;
  --shadow-soft:0 14px 36px rgba(15,23,34,.08);
  --shadow-card:0 10px 24px rgba(15,23,34,.06);
}
body,
.app-frame{
  background:linear-gradient(180deg, #f7f9fc 0%, #eef3f8 100%);
}
.desktop-sidebar-wrap{
  display:none;
}
.app-main-shell{
  min-height:100vh;
}
.app-topbar{
  background:rgba(255,255,255,.92);
  backdrop-filter:blur(14px);
  border-bottom:1px solid rgba(22,37,58,.07);
}
.app-topbar-inner,
.app-content{
  max-width:960px;
}
.app-topbar-inner{
  padding:14px 20px;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  column-gap:16px;
}
.app-userbar{
  display:flex;
  align-items:center;
  gap:14px;
  min-width:0;
}
.app-brand-logo{
  min-width:70px;
  height:40px;
  padding:5px 11px;
  border-radius:13px;
  background:#fff;
  border:1px solid var(--line-soft);
  box-shadow:none;
}
.app-brand-logo img{
  max-height:22px;
}
.app-user-meta{
  gap:8px;
  min-width:0;
}
.app-user-name{
  font-size:1.08rem;
  color:var(--text-strong);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.app-user-role{
  min-height:30px;
  padding:4px 12px;
  border-radius:999px;
  border:1px solid var(--line-soft);
  background:var(--surface-soft);
  color:#3c4b62;
}
.app-toolbar{
  gap:8px;
  justify-self:end;
}
.desktop-header-actions{
  display:none;
}
.icon-btn,
.menu-trigger{
  min-width:42px;
  height:42px;
  border-radius:14px;
  border:1px solid var(--line-soft);
  background:#fff;
  box-shadow:none;
}
.icon-btn:hover,
.menu-trigger:hover{
  background:#f8fbff;
  border-color:#d5e1ef;
}
.mobile-menu-panel{
  top:50px;
  padding:10px;
  border-radius:18px;
  border:1px solid var(--line-soft);
  box-shadow:0 18px 34px rgba(15,23,34,.12);
  background:#fff;
  display:flex;
  flex-direction:column;
  gap:8px;
}
.mobile-menu-section{
  padding:4px;
}
.mobile-menu-section + .mobile-menu-section{
  border-top:1px solid var(--line-soft);
  padding-top:10px;
}
.mobile-menu-label{
  padding:0 10px 8px;
  font-size:.76rem;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:#7a8ba0;
}
.mobile-menu-link,
.mobile-menu-action{
  min-height:46px;
  border:none;
  background:#fff;
  color:#304259;
  width:100%;
  border-radius:12px;
  text-decoration:none;
  display:flex;
  align-items:center;
  padding:0 14px;
  font-weight:700;
}
.mobile-menu-action{
  cursor:pointer;
}
.mobile-menu-link:hover,
.mobile-menu-action:hover{
  background:#f5f9ff;
}
.mobile-menu-link.is-active{
  background:#edf3ff;
  color:var(--blue-600);
  border-color:transparent;
}
.mobile-menu-link.menu-danger{
  color:#b54b4b;
}
.mobile-menu-link.menu-danger:hover{
  background:#fff5f5;
}
.mobile-menu-panel .lang-switch{
  width:100%;
  justify-content:center;
}
.mobile-menu-panel .lang-switch button{
  min-width:48px;
}
.app-content{
  padding:26px 20px 42px;
}
@media (min-width: 769px){
  .desktop-sidebar-wrap{
    display:block;
    position:fixed;
    left:0;
    top:0;
    bottom:0;
    width:294px;
    padding:18px 18px 18px 20px;
    z-index:35;
  }
  .desktop-sidebar-wrap .sidebar-panel{
    position:relative;
    top:auto;
    height:calc(100vh - 36px);
    margin:0;
    border-radius:28px;
    overflow:auto;
    scrollbar-width:none;
    -ms-overflow-style:none;
    padding:22px 16px 18px;
    display:flex;
    flex-direction:column;
    background:
      linear-gradient(180deg, rgba(21,195,165,.12) 0%, rgba(21,195,165,0) 18%),
      linear-gradient(180deg, #203345 0%, #182735 100%);
    box-shadow:0 18px 44px rgba(12,22,34,.20);
  }
  .desktop-sidebar-wrap .sidebar-panel::-webkit-scrollbar{
    width:0;
    height:0;
  }
  .desktop-sidebar-wrap .sidebar-brand{
    margin-bottom:22px;
    padding:0 4px 18px;
    border-bottom:1px solid rgba(255,255,255,.08);
  }
  .desktop-sidebar-wrap .sidebar-nav{
    gap:8px;
    padding-top:6px;
  }
  .desktop-sidebar-wrap .nav-link-main{
    gap:12px;
  }
  .desktop-sidebar-wrap .nav-icon{
    display:inline-flex;
    width:30px;
    height:30px;
    border-radius:10px;
    align-items:center;
    justify-content:center;
    background:rgba(255,255,255,.08);
    color:#fff;
    font-size:.82rem;
    font-weight:800;
    flex-shrink:0;
  }
  .desktop-sidebar-wrap .nav-link-panel{
    padding:12px;
    border-radius:16px;
    color:rgba(255,255,255,.90);
  }
  .desktop-sidebar-wrap .nav-link-panel .nav-note{
    color:rgba(255,255,255,.58);
  }
  .desktop-sidebar-wrap .nav-link-panel:hover{
    background:rgba(255,255,255,.06);
    border-color:rgba(255,255,255,.08);
  }
  .desktop-sidebar-wrap .nav-link-panel.is-active{
    background:#ffffff;
    color:#152538;
    border-color:#ffffff;
    box-shadow:0 12px 28px rgba(7,15,24,.16);
  }
  .desktop-sidebar-wrap .nav-link-panel.is-active .nav-note{
    color:#6f8095;
  }
  .desktop-sidebar-wrap .nav-link-panel.is-active .nav-icon{
    background:rgba(21,195,165,.14);
    color:#118d78;
  }
  .desktop-header-actions{
    display:flex;
    gap:8px;
  }
  .header-logout-btn{
    min-height:40px;
    padding:0 16px;
    border-radius:14px;
    border:1px solid var(--line-soft);
    background:#fff;
    color:#1f3448;
    text-decoration:none;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    font-weight:700;
  }
  .header-logout-btn:hover{
    background:#f8fbff;
    color:#244b85;
  }
  .desktop-header-actions .lang-switch{
    padding:4px;
    gap:4px;
    border-color:var(--line-soft);
  }
  .desktop-header-actions .lang-switch button{
    min-width:42px;
    padding:7px 10px;
  }
  .app-main-shell{
    margin-left:294px;
  }
  .app-topbar{
    background:transparent;
    backdrop-filter:none;
    border-bottom:none;
    position:sticky;
    top:0;
    padding-top:12px;
  }
  .app-topbar-inner,
  .app-content{
    max-width:none;
  }
  .app-topbar-inner{
    padding:0 26px;
  }
  .app-userbar{
    padding:10px 14px;
    border:1px solid var(--line-soft);
    border-radius:18px;
    background:rgba(255,255,255,.84);
    box-shadow:0 10px 24px rgba(15,23,34,.06);
    width:max-content;
    max-width:100%;
  }
  .app-toolbar{
    display:flex;
    align-items:center;
    gap:10px;
  }
  .app-content{
    padding:18px 26px 42px;
  }
  .mobile-menu{
    display:none;
  }
}
.page-header-card,
.week-card,
.filter-card,
.record-card,
.admin-section,
.settings-card,
.history-card,
.sheet-modal,
.login-card,
.pdf-option-row{
  background:var(--surface-card);
  border:1px solid var(--line-soft);
  box-shadow:var(--shadow-soft);
}
.page-header-card{
  padding:24px 26px;
  border-radius:22px;
}
.page-header-card h1{
  color:var(--text-strong);
}
.page-header-card p,
.hero-subtitle,
.record-subtitle,
.record-user,
.week-label,
.week-stat-label,
.mini-calendar-title,
.surface-note,
.history-meta,
.history-detail{
  color:var(--text-soft);
}
.home-stack{
  gap:14px;
}
.week-card{
  padding:14px 16px;
  border-radius:20px;
}
.week-card-body{
  grid-template-columns:minmax(0,1fr) 198px;
  gap:16px;
}
.week-nav-btn{
  border-radius:14px;
  border:1px solid var(--line-soft);
  background:#fff;
  box-shadow:none;
}
.week-card-center .week-range,
.week-stat-value,
.record-title{
  color:var(--text-strong);
}
.week-stat-value.primary{
  color:var(--blue-500);
}
.mini-calendar{
  padding:11px 13px;
  border-radius:18px;
  background:var(--surface-soft);
  border:1px solid var(--line-soft);
}
.mini-calendar-title{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}
.mini-calendar-title::after{
  content:"";
  width:8px;
  height:8px;
  border-radius:999px;
  background:linear-gradient(135deg, #57a0ff 0%, #3f7ceb 100%);
  box-shadow:0 0 0 4px rgba(63,124,235,.12);
  flex-shrink:0;
}
.mini-calendar-grid,
.mini-calendar-weekdays{
  gap:7px;
}
.mini-day{
  min-height:28px;
  border-radius:10px;
  background:transparent;
  text-decoration:none;
}
.mini-day span{
  width:24px;
  height:24px;
  border-radius:999px;
  transition:background .16s ease, color .16s ease, box-shadow .16s ease;
}
.mini-day.in-range span{
  background:#eef4ff;
  color:var(--blue-600);
}
.mini-day.has-entry span{
  background:#e6f7f3;
  color:#0d8d75;
  box-shadow:none;
}
.mini-day.has-entry.in-range span{
  background:linear-gradient(135deg, #57a0ff 0%, #3f7ceb 100%);
  color:#fff;
}
.mini-day.today{
  box-shadow:none;
}
.mini-day.today span{
  box-shadow:inset 0 0 0 1px rgba(47,104,219,.26);
}
.metric-pill{
  min-height:42px;
  padding:10px 14px;
  border-radius:14px;
  background:#fff;
  border:1px solid var(--line-soft);
  box-shadow:var(--shadow-card);
}
.home-overview-grid{
  display:grid;
  grid-template-columns:280px minmax(0,1fr);
  gap:12px;
}
.overview-card{
  padding:16px 18px;
  border-radius:20px;
  background:var(--surface-card);
  border:1px solid var(--line-soft);
  box-shadow:var(--shadow-soft);
}
.overview-card.primary{
  background:
    linear-gradient(180deg, rgba(63,124,235,.08) 0%, rgba(63,124,235,0) 100%),
    var(--surface-card);
}
.overview-kicker{
  font-size:.78rem;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--text-soft);
  margin-bottom:8px;
}
.overview-period{
  display:flex;
  flex-direction:column;
  gap:10px;
}
.overview-period-range{
  color:var(--text-soft);
  font-weight:700;
}
.overview-period-total{
  font-size:2rem;
  font-weight:800;
  line-height:1;
  color:var(--text-strong);
}
.overview-period-meta{
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  gap:10px;
}
.overview-mini-stat{
  padding:10px 12px;
  border-radius:14px;
  background:var(--surface-soft);
  border:1px solid var(--line-soft);
}
.overview-mini-stat strong{
  display:block;
  font-size:1rem;
  color:var(--text-strong);
}
.overview-mini-stat span{
  display:block;
  font-size:.8rem;
  color:var(--text-soft);
  margin-top:2px;
}
.overview-breakdown{
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  gap:10px 14px;
}
.overview-item{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:10px 12px;
  border-radius:14px;
  background:var(--surface-soft);
  border:1px solid var(--line-soft);
}
.overview-item span{
  color:var(--text-soft);
  font-weight:700;
}
.overview-item strong{
  color:var(--text-strong);
  font-size:1rem;
}
.action-row{
  grid-template-columns:minmax(0,1fr) repeat(4,52px);
  gap:10px;
  align-items:center;
}
.action-row .btn-primary{
  min-height:46px;
  border-radius:14px;
  background:linear-gradient(135deg, var(--blue-500) 0%, var(--blue-600) 100%);
  box-shadow:0 12px 24px rgba(63,124,235,.16);
}
.action-link{
  min-height:46px;
  border-radius:14px;
  justify-content:center;
  font-weight:800;
  box-shadow:none!important;
}
.action-icon{
  width:52px;
  height:46px;
  border-radius:14px;
  border:1px solid var(--line-soft);
  background:#fff;
  box-shadow:none;
}
.filter-card{
  padding:16px 18px;
  border-radius:20px;
}
.query-toolbar{
  margin-top:12px;
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}
.query-toolbar.compact{
  margin-top:10px;
}
.query-toolbar .btn{
  min-height:42px;
  border-radius:12px;
  padding:.62rem 1rem;
}
.toolbar-pill{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:40px;
  padding:0 14px;
  border-radius:999px;
  border:1px solid var(--line-soft);
  background:#fff;
  color:var(--text-soft);
  text-decoration:none;
  font-weight:800;
  font-size:.88rem;
}
.toolbar-pill.is-active{
  background:#edf4ff;
  border-color:rgba(63,124,235,.24);
  color:var(--blue-600);
}
.query-actions-card{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
  padding:16px 18px;
  border-radius:20px;
  border:1px solid var(--line-soft);
  background:var(--surface-card);
  box-shadow:var(--shadow-soft);
}
.query-filters-shell{
  display:block;
}
.query-filters-shell > summary{
  list-style:none;
}
.query-filters-shell > summary::-webkit-details-marker{
  display:none;
}
.query-filters-summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:14px 18px;
  border-radius:18px;
  border:1px solid var(--line-soft);
  background:var(--surface-card);
  box-shadow:var(--shadow-soft);
  cursor:pointer;
}
.query-filters-summary span{
  color:var(--text-strong);
  font-weight:800;
  letter-spacing:-.02em;
}
.query-filters-summary strong{
  color:var(--text-soft);
  font-size:.82rem;
  text-transform:uppercase;
  letter-spacing:.06em;
}
.query-filters-shell[open] .query-filters-summary{
  margin-bottom:10px;
}
.query-actions-primary,
.query-actions-secondary{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}
.query-doc-btn{
  font-weight:800;
}
.query-filters-form{
  display:flex;
  flex-direction:column;
  gap:12px;
}
.query-filters-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:12px;
}
.query-filter-actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}
.query-filter-actions .btn{
  min-width:160px;
}
.query-stats-grid{
  display:grid;
  grid-template-columns:repeat(6, minmax(0, 1fr));
  gap:12px;
}
.query-stat-card{
  padding:14px 16px;
  border-radius:18px;
  border:1px solid var(--line-soft);
  background:var(--surface-card);
  box-shadow:var(--shadow-soft);
}
.query-stat-card span{
  display:block;
  color:var(--text-soft);
  font-size:.82rem;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.06em;
}
.query-stat-card strong{
  display:block;
  margin-top:4px;
  color:var(--text-strong);
  font-size:1.28rem;
  letter-spacing:-.03em;
}
.query-add-btn{
  min-width:188px;
  font-weight:800;
  box-shadow:0 12px 24px rgba(63,124,235,.14)!important;
}
.record-list{
  gap:12px;
}
.record-card{
  grid-template-columns:68px minmax(0,1fr) auto;
  border-radius:18px;
  box-shadow:var(--shadow-card);
}
.record-date{
  padding:14px 8px;
  background:linear-gradient(180deg, #4b89f4 0%, #3f7ceb 100%);
}
.record-date strong{
  font-size:1.42rem;
}
.record-body{
  padding:14px 16px;
}
.record-side{
  padding:12px 14px 12px 0;
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  justify-content:center;
  gap:8px;
}
.record-meta{
  gap:12px;
  color:#35506e;
}
.record-reference{
  margin-top:10px;
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
  color:var(--text-soft);
  font-size:.82rem;
}
.record-reference span{
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.06em;
}
.record-reference b{
  color:var(--text-strong);
}
.record-hours{
  min-height:26px;
  padding:4px 10px;
  border-radius:999px;
  background:#eef4ff;
  color:var(--blue-600);
}
.record-actions{
  padding:14px 14px 14px 0;
  align-items:center;
}
.record-actions a{
  width:36px;
  height:36px;
  border-radius:12px;
  border:1px solid var(--line-soft);
  background:#fff;
}
.record-actions a:hover{
  background:#f7faff;
}
.query-bulk-bar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
  margin-bottom:14px;
  padding-bottom:12px;
  border-bottom:1px solid var(--line-soft);
}
.query-bulk-copy{
  display:flex;
  flex-direction:column;
  gap:2px;
}
.query-bulk-copy strong{
  color:var(--text-strong);
  letter-spacing:-.02em;
}
.query-bulk-copy span{
  color:var(--text-soft);
  font-size:.86rem;
}
.query-bulk-controls{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}
.query-bulk-controls .form-control{
  min-width:250px;
}
.sheet-modal{
  width:min(620px, 100%);
  padding:26px;
  border-radius:24px;
  box-shadow:0 22px 46px rgba(15,23,34,.14);
}
.sheet-modal-form{
  width:min(700px, 100%);
  padding:24px 24px 20px;
}
.sheet-modal-head{
  margin-bottom:18px;
}
.sheet-modal-head h2{
  color:var(--text-strong);
}
.sheet-modal-close{
  border-radius:14px;
  border:1px solid var(--line-soft);
  background:#fff;
}
.sheet-modal-form .form-control,
.sheet-modal-form select.form-control,
.filter-card .form-control,
.filter-card select.form-control,
.login-panel .form-control{
  min-height:46px;
  border-radius:14px;
  border:1px solid var(--line-soft);
  background:#f9fbfe;
}
.admin-tabs{
  gap:8px;
  flex-wrap:nowrap;
  padding:6px;
  border-radius:18px;
  background:#f5f8fc;
}
.admin-tab{
  min-width:154px;
  min-height:48px;
  padding:0 16px;
  border:none;
  border-radius:14px;
  background:transparent;
  box-shadow:none;
}
.admin-tab.active{
  background:#fff;
  color:var(--text-strong);
  box-shadow:var(--shadow-card);
}
.admin-section,
.settings-card,
.history-card{
  border-radius:20px;
}
.admin-list-item{
  border-radius:16px;
  background:#f7faff;
  border:1px solid var(--line-soft);
}
.empty-block{
  border-radius:18px;
  border:1px dashed #d7e2ef;
  background:#fbfdff;
}
.history-badge{
  background:#edf3ff;
  color:var(--blue-600);
}
.query-toolbar .btn{
  min-height:40px;
  border-radius:12px;
}
.pdf-option-row{
  grid-template-columns:28px 150px 116px minmax(0,1fr);
  padding:12px 14px;
  border-radius:18px;
}
.login-shell{
  background:linear-gradient(180deg, #f7f9fc 0%, #eef3f8 100%);
}
.login-card{
  width:min(430px, 100%);
  margin:0 auto;
  border-radius:24px;
}
.login-panel{
  background:#fff;
  color:var(--text-strong);
  padding:34px 30px 28px;
}
.login-panel h3,
.login-panel p{
  color:var(--text-strong);
}
.login-panel p{
  color:var(--text-soft);
}
.login-panel .form-control{
  background:#f8fbff;
  color:var(--text-strong);
}
.login-panel .form-control::placeholder{
  color:#91a0b3;
}
.login-panel .btn-primary{
  background:linear-gradient(135deg, var(--blue-500) 0%, var(--blue-600) 100%);
  box-shadow:0 14px 26px rgba(63,124,235,.18);
}
.login-divider{
  background:linear-gradient(90deg, var(--green-400) 0%, #73e0cf 100%);
}
.login-note{
  color:#8a98aa;
}
.lang-switch{
  background:#f8fbff;
  border-color:var(--line-soft);
  box-shadow:none;
}
.lang-switch button.is-active{
  background:#fff;
  color:var(--blue-600);
  box-shadow:0 6px 16px rgba(15,23,34,.08);
}
.dark .app-frame,
.dark body{
  background:linear-gradient(180deg, #0f1722 0%, #121d29 100%);
}
.dark .app-topbar{
  background:rgba(15,23,34,.9);
}
.dark .page-header-card,
.dark .week-card,
.dark .filter-card,
.dark .record-card,
.dark .admin-section,
.dark .settings-card,
.dark .history-card,
.dark .sheet-modal,
.dark .login-panel,
.dark .login-card,
.dark .pdf-option-row{
  background:#111c27;
  border-color:rgba(255,255,255,.08);
  box-shadow:none;
}
.dark .metric-pill,
.dark .app-user-role,
.dark .action-icon,
.dark .icon-btn,
.dark .menu-trigger,
.dark .doc-tab,
.dark .lang-switch,
.dark .week-nav-btn,
.dark .record-actions a{
  background:#0f1822;
  border-color:rgba(255,255,255,.08);
  color:var(--text);
}
.dark .record-tag{
  background:#0f1822;
  border-color:rgba(255,255,255,.08);
  color:var(--text);
}
.dark .record-select{
  background:#0f1822;
  border-color:rgba(255,255,255,.08);
  color:var(--muted);
}
.dark .toolbar-pill,
.dark .query-stat-card,
.dark .query-actions-card,
.dark .query-filters-summary{
  background:#111c27;
  border-color:rgba(255,255,255,.08);
  color:var(--text);
}
.dark .toolbar-pill.is-active{
  background:rgba(63,124,235,.16);
  border-color:rgba(63,124,235,.28);
  color:#dce9ff;
}
.dark .record-reference{
  color:var(--muted);
}
.dark .record-reference b{
  color:var(--text);
}
.dark .mini-calendar{
  background:#0f1822;
  border-color:rgba(255,255,255,.08);
}
.dark .mobile-menu-panel{
  background:#111c27;
  border-color:rgba(255,255,255,.08);
}
.dark .mobile-menu-section + .mobile-menu-section{
  border-top-color:rgba(255,255,255,.08);
}
.dark .mobile-menu-link,
.dark .mobile-menu-action{
  background:#111c27;
  color:var(--text);
}
.dark .mobile-menu-link:hover,
.dark .mobile-menu-action:hover{
  background:#162332;
}
.dark .mobile-menu-link.is-active{
  background:#1a2b3e;
  color:#dfe9ff;
}
.dark .mobile-menu-label{
  color:#8ea0b5;
}
.dark .desktop-sidebar-wrap .nav-link-panel.is-active{
  background:#eef4fb;
  color:#112031;
}
.dark .desktop-sidebar-wrap .nav-link-panel.is-active .nav-note{
  color:#6d7f93;
}
.dark .desktop-sidebar-wrap .nav-link-panel.is-active .nav-icon{
  background:rgba(17,141,120,.12);
  color:#118d78;
}
.dark .desktop-header-actions .lang-switch button.is-active{
  background:#eef4fb;
  color:#112031;
}
.dark .overview-card.primary{
  background:
    linear-gradient(180deg, rgba(63,124,235,.14) 0%, rgba(63,124,235,0) 100%),
    #111c27;
}
.dark .mini-day.in-range span{
  background:rgba(63,124,235,.22);
  color:#dfe9ff;
}
.dark .mini-day.has-entry span{
  background:rgba(21,195,165,.22);
  color:#9ef2e3;
}
@media (max-width: 1280px){
  .query-stats-grid{
    grid-template-columns:repeat(3, minmax(0, 1fr));
  }
  .pdf-layout-fields{
    grid-template-columns:1fr;
  }
}
@media (max-width: 768px){
  .desktop-sidebar-wrap{
    display:none;
  }
  .app-main-shell{
    margin-left:0;
  }
  .desktop-header-actions{
    display:none;
  }
  .app-topbar-inner,
  .app-content{
    max-width:none;
  }
  .app-topbar-inner{
    padding:12px 14px;
    grid-template-columns:minmax(0,1fr) auto;
  }
  .app-content{
    padding:18px 14px 32px;
  }
  .app-toolbar{
    display:flex;
    justify-content:flex-end;
    gap:8px;
  }
  .mobile-menu{
    display:block;
  }
  .app-brand-logo{
    min-width:64px;
    height:40px;
    padding:6px 10px;
  }
  .app-brand-logo img{
    max-height:22px;
  }
  .page-header-card,
  .week-card,
  .filter-card,
  .record-card,
  .admin-section,
  .settings-card,
  .history-card{
    border-radius:18px;
  }
  .week-card-body{
    grid-template-columns:1fr;
    gap:12px;
  }
  .query-actions-card,
  .query-actions-primary,
  .query-actions-secondary,
  .query-filter-actions,
  .query-bulk-bar,
  .query-bulk-controls{
    flex-direction:column;
    align-items:stretch;
  }
  .query-filters-grid,
  .query-stats-grid{
    grid-template-columns:1fr;
  }
  .query-filter-actions .btn,
  .query-actions-primary .btn,
  .query-actions-secondary .btn,
  .query-bulk-controls .btn,
  .query-bulk-controls .form-control{
    width:100%;
    max-width:none;
  }
  .toolbar-pill{
    width:100%;
  }
  .mini-calendar{
    padding:10px 12px;
  }
  .home-overview-grid{
    grid-template-columns:1fr;
  }
  .overview-breakdown{
    grid-template-columns:1fr;
  }
  .action-row{
    grid-template-columns:repeat(2, minmax(0,1fr));
  }
  .action-row .action-link{
    grid-column:1 / -1;
  }
  .action-icon{
    width:100%;
  }
  .query-toolbar{
    flex-direction:column;
    align-items:stretch;
  }
  .query-toolbar .btn,
  .query-add-btn{
    width:100%;
    min-width:0;
  }
  .record-card{
    grid-template-columns:64px minmax(0,1fr);
  }
  .record-side{
    grid-column:1 / -1;
    padding:0 14px 14px;
    align-items:stretch;
  }
  .record-select{
    width:100%;
    justify-content:center;
  }
  .record-actions{
    grid-column:1 / -1;
    padding:0 14px 14px;
    justify-content:flex-end;
  }
  .pdf-calibration-grid,
  .pdf-layout-fields{
    grid-template-columns:1fr;
  }
  .pdf-layout-group-head{
    align-items:stretch;
  }
  .pdf-layout-selector{
    width:100%;
  }
  .pdf-calibration-form{
    position:static;
  }
  .pdf-copy-form{
    flex-direction:column;
    align-items:stretch;
  }
  .pdf-copy-form .form-control{
    width:100%;
  }
  .pdf-preview-section{
    min-height:auto;
  }
  .pdf-preview-frame{
    min-height:520px;
  }
  .pdf-option-row{
    grid-template-columns:28px 1fr;
  }
  .pdf-option-status{
    margin-top:8px;
    width:100%;
    justify-content:flex-start;
  }
  .sheet-modal,
  .sheet-modal-form{
    width:100%;
    padding:18px 14px 16px;
    border-radius:18px;
  }
  .modal-page-shell .modal-background{
    display:none;
  }
  .modal-overlay{
    background:rgba(244,247,252,.96);
    padding:72px 10px 14px;
    overflow-y:auto;
  }
  .sheet-modal-wrap{
    width:100%;
    min-height:0;
    padding-top:0;
  }
  .sheet-modal-head{
    gap:12px;
    margin-bottom:14px;
  }
  .sheet-modal-head h2{
    font-size:1.4rem;
  }
  .sheet-modal-head p{
    font-size:.9rem;
  }
  .repeat-builder{
    padding:10px 12px;
  }
  .repeat-actions{
    grid-template-columns:1fr 1fr;
  }
  .repeat-actions .btn:last-child{
    grid-column:1 / -1;
  }
  .checklist-grid.compact-grid.repeat-days-grid{
    grid-template-columns:repeat(7, minmax(0,1fr));
    gap:6px;
  }
  .repeat-days-grid .form-check.compact{
    min-height:36px;
    padding:0 4px;
    font-size:.88rem;
    gap:4px;
  }
  .entry-form-body{
    gap:12px;
  }
  .entry-field-card{
    padding:12px;
    border-radius:16px;
  }
  .entry-form-body > .form-control,
  .entry-form-body > select.form-control,
  .entry-field-card,
  .entry-form-body details.team-picker,
  .entry-form-body .repeat-builder,
  .form-footnote{
    border-radius:16px;
  }
  .entry-form-body .time-grid,
  .entry-form-body .form-grid{
    gap:12px;
  }
  .entry-form-body .time-grid > div,
  .entry-form-body .form-grid > div{
    padding:10px 12px;
    border-radius:16px;
    border:1px solid var(--line-soft);
    background:#f9fbfe;
  }
  .entry-form-body .time-grid > div .form-control,
  .entry-form-body .form-grid > div .form-control,
  .entry-form-body .form-grid > div select.form-control{
    background:#fff;
  }
  .entry-form-body .surface-check,
  .entry-form-body .team-picker,
  .entry-form-body .repeat-builder,
  .entry-field-card,
  .form-footnote{
    background:#f9fbfe;
    border:1px solid var(--line-soft);
  }
  .entry-form-body .team-picker summary,
  .entry-form-body .repeat-builder summary{
    font-size:.95rem;
  }
  .entry-form-body .repeat-builder-body{
    gap:12px;
  }
  .login-panel{
    padding:30px 22px 24px;
  }
}
