/* ============================================
   Vantaa Static Sites — Example Theme
   Modern, clean design with CSS custom properties
   ============================================ */

:root {
  --color-primary: #6366f1;
  --color-primary-dark: #4f46e5;
  --color-primary-light: #a5b4fc;
  --color-secondary: #06b6d4;
  --color-accent: #f59e0b;
  --color-success: #10b981;
  --color-danger: #ef4444;
  --color-warning: #f59e0b;
  --color-bg: #f8fafc;
  --color-surface: #ffffff;
  --color-border: #e2e8f0;
  --color-text: #1e293b;
  --color-text-light: #64748b;
  --color-text-muted: #94a3b8;
  --font-sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --font-mono: 'JetBrains Mono', 'Fira Code', monospace;
  --space-xs: 0.25rem;
  --space-sm: 0.5rem;
  --space-md: 1rem;
  --space-lg: 1.5rem;
  --space-xl: 2rem;
  --space-2xl: 3rem;
  --space-3xl: 4rem;
  --shadow-sm: 0 1px 2px rgba(0,0,0,0.05);
  --shadow-md: 0 4px 6px -1px rgba(0,0,0,0.1),0 2px 4px -2px rgba(0,0,0,0.1);
  --shadow-lg: 0 10px 15px -3px rgba(0,0,0,0.1),0 4px 6px -4px rgba(0,0,0,0.1);
  --shadow-xl: 0 20px 25px -5px rgba(0,0,0,0.1),0 8px 10px -6px rgba(0,0,0,0.1);
  --radius-sm: 0.375rem;
  --radius-md: 0.5rem;
  --radius-lg: 0.75rem;
  --radius-xl: 1rem;
  --radius-full: 9999px;
  --transition-fast: 150ms ease;
  --transition-base: 250ms ease;
  --transition-slow: 350ms ease;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased}
body{font-family:var(--font-sans);color:var(--color-text);background:var(--color-bg);line-height:1.6;min-height:100vh;display:flex;flex-direction:column}
a{color:var(--color-primary);text-decoration:none;transition:color var(--transition-fast)}
a:hover{color:var(--color-primary-dark)}
img{max-width:100%;display:block}

.navbar{background:var(--color-surface);border-bottom:1px solid var(--color-border);padding:var(--space-md) var(--space-xl);position:sticky;top:0;z-index:100;backdrop-filter:blur(12px);background:rgba(255,255,255,0.9)}
.navbar-inner{max-width:1200px;margin:0 auto;display:flex;align-items:center;justify-content:space-between}
.navbar-brand{display:flex;align-items:center;gap:var(--space-sm);font-weight:700;font-size:1.25rem;color:var(--color-text)}
.navbar-brand svg{width:32px;height:32px}
.navbar-links{display:flex;list-style:none;gap:var(--space-xs)}
.navbar-links a{display:block;padding:var(--space-sm) var(--space-md);color:var(--color-text-light);border-radius:var(--radius-md);font-weight:500;font-size:0.9rem;transition:all var(--transition-fast)}
.navbar-links a:hover,.navbar-links a.active{color:var(--color-primary);background:rgba(99,102,241,0.08)}

.hero{background:linear-gradient(135deg,#6366f1 0%,#06b6d4 50%,#10b981 100%);color:white;padding:var(--space-3xl) var(--space-xl);text-align:center}
.hero h1{font-size:clamp(2rem,5vw,3.5rem);font-weight:800;margin-bottom:var(--space-md);letter-spacing:-0.02em}
.hero p{font-size:1.2rem;opacity:0.9;max-width:600px;margin:0 auto var(--space-xl)}
.hero-actions{display:flex;gap:var(--space-md);justify-content:center;flex-wrap:wrap}

.btn{display:inline-flex;align-items:center;gap:var(--space-sm);padding:0.625rem 1.25rem;font-weight:600;font-size:0.9rem;border-radius:var(--radius-md);border:2px solid transparent;cursor:pointer;transition:all var(--transition-fast);font-family:var(--font-sans);text-decoration:none}
.btn-primary{background:var(--color-primary);color:white}
.btn-primary:hover{background:var(--color-primary-dark);color:white;transform:translateY(-1px);box-shadow:var(--shadow-lg)}
.btn-outline{background:transparent;color:white;border-color:rgba(255,255,255,0.4)}
.btn-outline:hover{background:rgba(255,255,255,0.1);border-color:white;color:white}
.btn-secondary{background:var(--color-surface);color:var(--color-text);border-color:var(--color-border)}
.btn-secondary:hover{border-color:var(--color-primary-light);color:var(--color-primary)}
.btn-success{background:var(--color-success);color:white}
.btn-danger{background:var(--color-danger);color:white}
.btn-sm{padding:0.375rem 0.75rem;font-size:0.8rem}
.btn-lg{padding:0.75rem 1.75rem;font-size:1rem}

.container{max-width:1200px;margin:0 auto;padding:var(--space-2xl) var(--space-xl)}
.container-narrow{max-width:800px;margin:0 auto;padding:var(--space-2xl) var(--space-xl)}
.section{padding:var(--space-3xl) 0}
.section-title{font-size:1.75rem;font-weight:700;margin-bottom:var(--space-sm);letter-spacing:-0.01em}
.section-subtitle{color:var(--color-text-light);font-size:1.05rem;margin-bottom:var(--space-2xl)}

.grid{display:grid;gap:var(--space-lg)}
.grid-2{grid-template-columns:repeat(2,1fr)}
.grid-3{grid-template-columns:repeat(3,1fr)}
.grid-4{grid-template-columns:repeat(4,1fr)}

.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-lg);transition:all var(--transition-base)}
.card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}
.card-header{display:flex;align-items:center;gap:var(--space-md);margin-bottom:var(--space-md)}
.card-icon{width:48px;height:48px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-size:1.25rem}
.card-icon-purple{background:rgba(99,102,241,0.1);color:var(--color-primary)}
.card-icon-cyan{background:rgba(6,182,212,0.1);color:var(--color-secondary)}
.card-icon-amber{background:rgba(245,158,11,0.1);color:var(--color-accent)}
.card-icon-green{background:rgba(16,185,129,0.1);color:var(--color-success)}
.card h3{font-size:1.1rem;font-weight:600}
.card p{color:var(--color-text-light);font-size:0.9rem;line-height:1.7}
.card-link{display:block;color:inherit;text-decoration:none}

.stat-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-lg);text-align:center}
.stat-value{font-size:2.5rem;font-weight:800;color:var(--color-primary);line-height:1;margin-bottom:var(--space-xs)}
.stat-label{color:var(--color-text-light);font-size:0.85rem;font-weight:500;text-transform:uppercase;letter-spacing:0.05em}
.stat-change{font-size:0.8rem;margin-top:var(--space-sm);font-weight:600}
.stat-change.up{color:var(--color-success)}
.stat-change.down{color:var(--color-danger)}

.badge{display:inline-flex;align-items:center;padding:0.125rem 0.625rem;font-size:0.75rem;font-weight:600;border-radius:var(--radius-full);text-transform:uppercase;letter-spacing:0.03em}
.badge-primary{background:rgba(99,102,241,0.1);color:var(--color-primary)}
.badge-success{background:rgba(16,185,129,0.1);color:var(--color-success)}
.badge-warning{background:rgba(245,158,11,0.1);color:var(--color-accent)}
.badge-danger{background:rgba(239,68,68,0.1);color:var(--color-danger)}

.table-wrapper{overflow-x:auto;border:1px solid var(--color-border);border-radius:var(--radius-lg)}
table{width:100%;border-collapse:collapse}
th{background:var(--color-bg);text-align:left;padding:var(--space-md);font-weight:600;font-size:0.8rem;text-transform:uppercase;letter-spacing:0.05em;color:var(--color-text-light);border-bottom:1px solid var(--color-border)}
td{padding:var(--space-md);border-bottom:1px solid var(--color-border);font-size:0.9rem}
tr:last-child td{border-bottom:none}
tr:hover td{background:rgba(99,102,241,0.02)}

.form-group{margin-bottom:var(--space-lg)}
.form-label{display:block;font-weight:600;font-size:0.875rem;margin-bottom:var(--space-sm);color:var(--color-text)}
.form-hint{font-size:0.8rem;color:var(--color-text-muted);margin-top:var(--space-xs)}
.form-input,.form-select,.form-textarea{width:100%;padding:0.625rem 0.875rem;font-size:0.9rem;font-family:var(--font-sans);color:var(--color-text);background:var(--color-surface);border:1.5px solid var(--color-border);border-radius:var(--radius-md);transition:all var(--transition-fast);outline:none}
.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(99,102,241,0.15)}
.form-textarea{min-height:120px;resize:vertical}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-lg)}

code{font-family:var(--font-mono);font-size:0.85em;background:rgba(99,102,241,0.08);padding:0.15em 0.4em;border-radius:var(--radius-sm);color:var(--color-primary-dark)}
pre{background:#1e293b;color:#e2e8f0;padding:var(--space-lg);border-radius:var(--radius-lg);overflow-x:auto;font-size:0.85rem;line-height:1.7}
pre code{background:none;color:inherit;padding:0}
.code-header{display:flex;justify-content:space-between;align-items:center;background:#0f172a;padding:var(--space-sm) var(--space-lg);border-radius:var(--radius-lg) var(--radius-lg) 0 0;font-size:0.8rem;color:var(--color-text-muted)}
.code-header+pre{border-radius:0 0 var(--radius-lg) var(--radius-lg)}

.tag-list{display:flex;flex-wrap:wrap;gap:var(--space-sm)}
.tag{display:inline-block;padding:0.2rem 0.65rem;font-size:0.78rem;font-weight:500;border-radius:var(--radius-full);background:var(--color-bg);color:var(--color-text-light);border:1px solid var(--color-border)}

.blog-card{display:flex;gap:var(--space-lg);padding:var(--space-lg);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);transition:all var(--transition-base)}
.blog-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}
.blog-card-image{width:200px;min-height:140px;border-radius:var(--radius-md);flex-shrink:0}
.blog-card-content{flex:1}
.blog-card-meta{display:flex;align-items:center;gap:var(--space-md);font-size:0.8rem;color:var(--color-text-muted);margin-bottom:var(--space-sm)}
.blog-card h3{font-size:1.15rem;margin-bottom:var(--space-sm)}
.blog-card p{color:var(--color-text-light);font-size:0.9rem}

.alert{padding:var(--space-md) var(--space-lg);border-radius:var(--radius-md);border-left:4px solid;margin-bottom:var(--space-lg);font-size:0.9rem}
.alert-info{background:rgba(6,182,212,0.08);border-color:var(--color-secondary);color:#0e7490}
.alert-success{background:rgba(16,185,129,0.08);border-color:var(--color-success);color:#047857}
.alert-warning{background:rgba(245,158,11,0.08);border-color:var(--color-accent);color:#92400e}
.alert-danger{background:rgba(239,68,68,0.08);border-color:var(--color-danger);color:#991b1b}

.progress-bar{height:8px;background:var(--color-bg);border-radius:var(--radius-full);overflow:hidden}
.progress-fill{height:100%;border-radius:var(--radius-full);transition:width var(--transition-slow)}
.progress-fill-primary{background:var(--color-primary)}
.progress-fill-success{background:var(--color-success)}
.progress-fill-warning{background:var(--color-accent)}
.progress-fill-danger{background:var(--color-danger)}

.footer{margin-top:auto;background:var(--color-surface);border-top:1px solid var(--color-border);padding:var(--space-2xl) var(--space-xl)}
.footer-inner{max-width:1200px;margin:0 auto;display:flex;justify-content:space-between;align-items:center}
.footer-text{color:var(--color-text-muted);font-size:0.85rem}
.footer-links{display:flex;gap:var(--space-lg);list-style:none}
.footer-links a{color:var(--color-text-light);font-size:0.85rem}
.footer-links a:hover{color:var(--color-primary)}

.breadcrumb{display:flex;align-items:center;gap:var(--space-sm);font-size:0.85rem;color:var(--color-text-muted);margin-bottom:var(--space-xl)}
.breadcrumb a{color:var(--color-text-light)}
.breadcrumb span{color:var(--color-text);font-weight:500}

.layout-sidebar{display:grid;grid-template-columns:240px 1fr;gap:var(--space-2xl)}
.sidebar{position:sticky;top:80px;align-self:start}
.sidebar-nav{list-style:none}
.sidebar-nav a{display:block;padding:var(--space-sm) var(--space-md);color:var(--color-text-light);border-radius:var(--radius-md);font-size:0.875rem;border-left:2px solid transparent;margin-bottom:2px}
.sidebar-nav a:hover,.sidebar-nav a.active{color:var(--color-primary);background:rgba(99,102,241,0.06);border-left-color:var(--color-primary)}
.sidebar-section{margin-bottom:var(--space-lg)}
.sidebar-section-title{font-size:0.7rem;font-weight:700;text-transform:uppercase;letter-spacing:0.08em;color:var(--color-text-muted);padding:var(--space-sm) var(--space-md)}

.toast{position:fixed;bottom:var(--space-xl);right:var(--space-xl);background:var(--color-text);color:white;padding:var(--space-md) var(--space-lg);border-radius:var(--radius-md);box-shadow:var(--shadow-xl);font-size:0.9rem;transform:translateY(100px);opacity:0;transition:all var(--transition-base);z-index:1000}
.toast.show{transform:translateY(0);opacity:1}

.tabs{display:flex;border-bottom:1px solid var(--color-border);margin-bottom:var(--space-xl)}
.tab{padding:var(--space-md) var(--space-lg);font-weight:500;font-size:0.9rem;color:var(--color-text-light);border-bottom:2px solid transparent;cursor:pointer;transition:all var(--transition-fast);background:none;border-top:none;border-left:none;border-right:none;font-family:var(--font-sans)}
.tab:hover{color:var(--color-primary)}
.tab.active{color:var(--color-primary);border-bottom-color:var(--color-primary)}
.tab-content{display:none}
.tab-content.active{display:block}

@media(max-width:768px){
  .grid-2,.grid-3,.grid-4{grid-template-columns:1fr}
  .form-row{grid-template-columns:1fr}
  .layout-sidebar{grid-template-columns:1fr}
  .sidebar{position:static}
  .navbar-links{display:none}
  .hero h1{font-size:2rem}
  .blog-card{flex-direction:column}
  .blog-card-image{width:100%;min-height:180px}
  .footer-inner{flex-direction:column;gap:var(--space-md);text-align:center}
}