.container{max-width:var(--container);margin:0 auto;padding:0 var(--gap)}
.container-narrow{max-width:var(--container-narrow);margin:0 auto;padding:0 var(--gap)}

/* HEADER */
.site-header{position:sticky;top:0;z-index:var(--z-header);background:rgba(255,255,255,.92);backdrop-filter:saturate(180%) blur(12px);-webkit-backdrop-filter:saturate(180%) blur(12px);border-bottom:1px solid var(--color-border)}
.site-header .container{display:flex;align-items:center;justify-content:space-between;gap:24px;height:64px}
.site-logo{display:inline-flex;align-items:center;gap:10px;font-family:var(--font-heading);font-size:1.125rem;font-weight:700;color:var(--color-text);white-space:nowrap;letter-spacing:-0.02em}
.site-logo:hover{text-decoration:none;color:var(--color-primary)}
.site-logo-icon{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;background:var(--color-primary);color:#fff;border-radius:8px;font-size:.875rem;font-weight:700}
.site-nav{display:flex;align-items:center;gap:4px;flex-wrap:wrap}
.site-nav a{display:inline-flex;align-items:center;height:40px;padding:0 14px;font-size:.9375rem;font-weight:500;color:var(--color-text-2);border-radius:8px;transition:background .15s,color .15s}
.site-nav a:hover{background:var(--color-surface-2);color:var(--color-text);text-decoration:none}
.site-nav a.active{background:var(--color-primary-light);color:var(--color-primary);font-weight:600}
.nav-divider{width:1px;height:20px;background:var(--color-border);margin:0 4px}

/* MOBILE NAV TOGGLE */
.nav-toggle{display:none;width:40px;height:40px;border-radius:8px;background:transparent;border:1px solid var(--color-border);cursor:pointer;align-items:center;justify-content:center}
.nav-toggle svg{width:20px;height:20px;stroke:var(--color-text)}

/* BREADCRUMB */
.breadcrumb{padding:16px 0 8px;font-size:.8125rem;color:var(--color-muted)}
.breadcrumb ol{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.breadcrumb li+li::before{content:"/";margin-right:6px;color:var(--color-border-strong);font-weight:300}
.breadcrumb a{color:var(--color-muted);transition:color .15s}
.breadcrumb a:hover{color:var(--color-primary)}
.breadcrumb [aria-current="page"]{color:var(--color-text-2);font-weight:500}

/* HERO */
.page-hero{padding:32px 0 24px}
.page-hero h1{font-size:clamp(1.75rem,4vw,2.75rem);font-weight:700;line-height:1.1;letter-spacing:-0.03em;margin-bottom:12px;color:var(--color-text)}
.page-hero .subtitle{color:var(--color-text-2);font-size:clamp(1rem,1.5vw,1.125rem);max-width:680px;line-height:1.55}
.page-hero .eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:.8125rem;font-weight:600;color:var(--color-primary);text-transform:uppercase;letter-spacing:.08em;margin-bottom:16px;padding:6px 12px;background:var(--color-primary-light);border-radius:99px}

/* STATS BAR */
.stats-bar{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1px;background:var(--color-border);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;margin:24px 0;box-shadow:var(--shadow-sm)}
.stat-item{display:flex;flex-direction:column;gap:6px;padding:20px 24px;background:var(--color-surface)}
.stat-val{font-family:var(--font-heading);font-size:2rem;font-weight:700;line-height:1;color:var(--color-text);letter-spacing:-0.02em;font-variant-numeric:tabular-nums}
.stat-val.work{color:var(--color-primary)}
.stat-val.weekend{color:var(--color-holiday)}
.stat-val.accent{color:var(--color-accent)}
.stat-lab{font-size:.8125rem;color:var(--color-muted);font-weight:500;text-transform:uppercase;letter-spacing:.06em}
.stat-sep{display:none}

/* YEAR NAV */
.year-nav{display:inline-flex;align-items:center;gap:4px;padding:4px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:99px;margin:8px 0 20px;box-shadow:var(--shadow-xs)}
.year-nav a,.year-nav span{display:inline-flex;align-items:center;justify-content:center;height:36px;padding:0 18px;font-size:.875rem;font-weight:600;border-radius:99px;color:var(--color-text-2)}
.year-nav a:hover{background:var(--color-surface-2);color:var(--color-text);text-decoration:none}
.year-nav span{background:var(--color-primary);color:#fff}

/* REGION NAV */
.region-nav{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0 24px}
.region-nav a{display:inline-flex;align-items:center;height:36px;padding:0 14px;font-size:.875rem;font-weight:500;border:1px solid var(--color-border);border-radius:99px;background:var(--color-surface);color:var(--color-text-2);transition:all .15s}
.region-nav a:hover{border-color:var(--color-primary);color:var(--color-primary);background:var(--color-primary-light);text-decoration:none}
.region-nav a.active{background:var(--color-text);border-color:var(--color-text);color:#fff}

/* MONTHS GRID */
.months-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:20px;margin:24px 0}
.month-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;transition:transform .2s,box-shadow .2s,border-color .2s}
.month-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:var(--color-border-strong)}
.month-card-head{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--color-border)}
.month-card-head a{font-family:var(--font-heading);font-weight:600;font-size:1rem;color:var(--color-text);letter-spacing:-0.01em}
.month-card-head a:hover{color:var(--color-primary);text-decoration:none}
.month-card-stats{display:inline-flex;align-items:center;gap:8px;font-size:.75rem;font-weight:600;color:var(--color-muted);font-variant-numeric:tabular-nums}
.month-card-stats .work{color:var(--color-primary)}
.month-card-stats .rest{color:var(--color-holiday)}
.month-card-body{padding:12px}

/* LEGEND */
.cal-legend{display:flex;flex-wrap:wrap;gap:16px;margin:8px 0 20px;padding:14px 18px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);font-size:.8125rem;color:var(--color-text-2)}
.legend-item{display:inline-flex;align-items:center;gap:8px;font-weight:500}
.legend-dot{width:14px;height:14px;border-radius:4px;flex-shrink:0}
.legend-dot.workday{background:#fff;border:1px solid var(--color-border-strong)}
.legend-dot.weekend{background:var(--color-weekend-bg);border:1px solid var(--color-weekend-border)}
.legend-dot.holiday{background:var(--color-holiday-bg);border:1px solid var(--color-holiday-border)}
.legend-dot.today{background:var(--color-primary-light);border:2px solid var(--color-primary)}

/* NORMS TABLE */
.norms-wrap{margin:32px 0;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm)}
.norms-wrap-scroll{overflow-x:auto}
.norms-table{width:100%;font-size:.875rem;border-collapse:collapse}
.norms-table th,.norms-table td{padding:14px 18px;border-bottom:1px solid var(--color-border);text-align:left}
.norms-table thead th{background:var(--color-surface-2);font-family:var(--font-heading);font-weight:600;font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:var(--color-muted)}
.norms-table tbody tr:last-child td{border-bottom:none}
.norms-table tbody tr:hover{background:var(--color-surface-2)}
.norms-table td.num{text-align:right;font-variant-numeric:tabular-nums;font-weight:600}
.norms-table td.work,.norms-table th.work{color:var(--color-primary)}
.norms-table td.weekend,.norms-table th.weekend{color:var(--color-holiday)}
.norms-table tfoot td{font-weight:700;background:var(--color-surface-2);font-family:var(--font-heading)}

/* SECTION TITLE */
.section-title{font-family:var(--font-heading);font-size:1.375rem;font-weight:700;margin:40px 0 16px;letter-spacing:-0.02em}
.section-subtitle{font-size:.9375rem;color:var(--color-muted);margin-top:-8px;margin-bottom:16px}

/* FOOTER */
.site-footer{margin-top:80px;border-top:1px solid var(--color-border);background:var(--color-surface);padding:48px 0 32px;font-size:.875rem;color:var(--color-text-2)}
.site-footer .container{display:grid;grid-template-columns:2fr 1fr 1fr;gap:48px}
.footer-brand .site-logo{margin-bottom:12px}
.footer-tagline{color:var(--color-muted);max-width:340px;line-height:1.55}
.footer-col h4{font-family:var(--font-heading);font-size:.875rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text);margin-bottom:12px}
.footer-links{display:flex;flex-direction:column;gap:8px}
.footer-links a{color:var(--color-text-2);transition:color .15s}
.footer-links a:hover{color:var(--color-primary);text-decoration:none}
.footer-bottom{margin-top:32px;padding-top:24px;border-top:1px solid var(--color-border);display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;font-size:.8125rem;color:var(--color-muted)}
.footer-disclaimer{font-size:.75rem;line-height:1.5;max-width:760px;color:var(--color-muted);margin-top:16px}

/* RESPONSIVE */
@media(max-width:900px){
  .site-footer .container{grid-template-columns:1fr 1fr;gap:32px}
}
@media(max-width:768px){
  .site-nav{display:none;position:absolute;top:64px;left:0;right:0;flex-direction:column;align-items:stretch;gap:0;padding:8px;background:var(--color-surface);border-bottom:1px solid var(--color-border);box-shadow:var(--shadow-md)}
  .site-nav.open{display:flex}
  .site-nav a{height:44px;border-radius:8px;justify-content:flex-start}
  .nav-divider{display:none}
  .nav-toggle{display:inline-flex}
  .stats-bar{grid-template-columns:1fr 1fr}
  .stat-val{font-size:1.625rem}
  .site-footer .container{grid-template-columns:1fr}
}
@media(max-width:480px){
  .page-hero{padding:20px 0 16px}
  .stats-bar{grid-template-columns:1fr 1fr}
  .stat-item{padding:14px 16px}
  .stat-val{font-size:1.375rem}
  .month-card-head{padding:14px 16px}
  .norms-table th,.norms-table td{padding:10px 12px;font-size:.8125rem}
}
