
/* =====================================================
   Sustain Design – Good (light-header) inspired
   File: app/assets/css/app.css
   ===================================================== */

/* Inter font */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700;800&display=swap');

:root{
  --gd-bg: #ffffff;
  --gd-beige: #fbf9f6;
  --gd-beige-strong: #f5efe8;
  --gd-icon-bg: #f6f3ef;
  --gd-icon-br: #efe9e2;
  --gd-stroke: #f0ece6;
  --gd-stroke-2: #f6f1ea;
  --gd-muted: #8d8a83;
  --gd-text: #2d2a26;
  --gd-accent: #23c2b4; /* cyan-ish */
  --gd-danger: #ef5a3c; /* orange/red */
  --gd-container: 1180px;
  --gd-radius-chip: 14px;
  --gd-radius-card: 18px;
}

*,
*::before,*::after{ box-sizing:border-box; }
html,body{ height:100%; background:var(--gd-bg); color:var(--gd-text);
  font-family:Inter,system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale;
}
img{ max-width:100%; height:auto; display:block; }
a{ color:inherit; text-decoration:none; }
a:hover{ text-decoration:none; }
button{ cursor:pointer; }
input,button{ font:inherit; }

/* Container */
.gd-container{ max-width:var(--gd-container); margin-inline:auto; padding:0 20px; }

/* HEADER */
.gd-topbar{ position:sticky; top:0; z-index:50; background:#fff; border-bottom:1px solid var(--gd-stroke); }
.gd-topbar .gd-container{ padding-block:10px; display:flex; align-items:center; justify-content:space-between; gap:16px; }
.gd-brand{ display:flex; align-items:center; gap:.6rem; color:var(--gd-text); }
.gd-logo-dot{ display:inline-block; width:28px; height:28px; border-radius:50%;
  background:var(--gd-danger); box-shadow:18px 0 0 #111, 36px 0 0 var(--gd-danger); margin-right:40px; }
.gd-logo-word{ font-weight:800; letter-spacing:.2px; }

.gd-search{ height:44px; background:var(--gd-beige); border:1px solid var(--gd-stroke);
  border-radius:999px; padding:6px 14px; display:flex; align-items:center; gap:10px; }
.gd-search input{ height:28px; outline:0; border:0; background:transparent; color:var(--gd-text); width:100%; }
.gd-search input::placeholder{ color:var(--gd-muted); }

.gd-actions{ display:flex; align-items:center; gap:10px; }
.gd-chip{ width:44px; height:44px; border-radius:var(--gd-radius-chip); border:1px solid var(--gd-icon-br);
  background:var(--gd-icon-bg); display:grid; place-items:center; font-size:18px; transition:background .15s; }
.gd-chip:hover{ background:var(--gd-beige-strong); }
.gd-badge{ min-width:44px; height:44px; border-radius:var(--gd-radius-chip); display:flex; align-items:center; justify-content:center;
  color:#fff; font-weight:700; background:var(--gd-accent); padding:0 14px; }

.gd-subnav{ border-top:1px solid var(--gd-stroke-2); }
.gd-subnav .gd-container{ padding:14px 20px; }
.gd-subnav .nav{ display:flex; gap:12px; }
.gd-subnav .nav-link{ color:var(--gd-muted); font-weight:700; border-radius:var(--gd-radius-chip); padding:10px 16px; display:inline-block; }
.gd-subnav .nav-link:hover{ color:var(--gd-text); background:var(--gd-beige); }
.gd-subnav .nav-link.active,.gd-subnav .nav-link[aria-current="page"]{ color:var(--gd-text); background:var(--gd-beige-strong); }

/* active by page */
body[data-page="index"]   .gd-subnav a[href$="index.html"],
body[data-page="reports"] .gd-subnav a[href$="reports.html"],
body[data-page="wizard"]  .gd-subnav a[href$="wizard.html"],
body[data-page="help"]    .gd-subnav a[href$="help.html"]{ background:var(--gd-beige-strong); color:var(--gd-text); }

/* PAGE CHROME */
.main{ padding:24px 0 64px; }
.gd-card{ background:#fff; border:1px solid var(--gd-stroke); border-radius:var(--gd-radius-card);
  padding:20px; box-shadow:0 1px 0 rgba(0,0,0,.02); }
.gd-card-title{ font-weight:800; margin:0 0 10px; }
.gd-muted{ color:var(--gd-muted); }

/* PAGEBAR */
.gd-pagebar{ border-bottom:1px solid var(--gd-stroke-2); background:#fff; }
.gd-crumbs{ display:flex; gap:10px; align-items:center; padding:10px 0; color:var(--gd-muted); font-weight:600; }
.gd-crumbs a{ color:var(--gd-muted); }
.gd-crumbs a:hover{ color:var(--gd-text); }
.gd-crumbs .dot{ width:4px; height:4px; border-radius:50%; background:var(--gd-muted); opacity:.45; }
.gd-title-row{ display:flex; align-items:flex-end; justify-content:space-between; gap:16px; padding:14px 0 18px; }
.gd-title-row h1{ margin:0; font-size:clamp(22px,2.2vw,28px); font-weight:800; }
.gd-version{ background:var(--gd-beige); border:1px solid var(--gd-stroke); border-radius:999px; padding:6px 12px; font-weight:700; color:var(--gd-muted); }

/* GRID */
.gd-wrap{ padding:18px 0 36px; }
.gd-grid-12{ display:grid; gap:20px; grid-template-columns:1fr; }
@media (min-width:980px){ .gd-grid-12{ grid-template-columns:380px 1fr; } }
.gd-panel{ background:#fff; border:1px solid var(--gd-stroke); border-radius:var(--gd-radius-card); box-shadow:0 1px 0 rgba(0,0,0,.02); }
.stat-card{ padding:16px; }
.stat-card .hd{ display:flex; align-items:center; justify-content:space-between; margin-bottom:12px; }
.stat-card .hd .title{ font-weight:800; }
.stat-card .hd .muted-chip{ padding:6px 10px; border-radius:999px; font-weight:700; border:1px solid var(--gd-stroke); background:var(--gd-beige); }
.stat-num{ display:flex; align-items:baseline; gap:10px; margin:4px 0 12px; }
.stat-num .n{ font-size:40px; font-weight:800; }
.stat-num .delta{ color:var(--gd-accent); font-weight:800; }
.stat-list{ margin:0; padding:0; list-style:none; border-top:1px solid var(--gd-stroke-2); }
.stat-list li{ display:flex; align-items:center; justify-content:space-between; padding:10px 0; border-bottom:1px solid var(--gd-stroke-2); }
.stat-list .k{ color:var(--gd-muted); }
.cta{ padding:18px; display:grid; grid-template-columns:1fr 220px; gap:18px; }
@media (max-width:900px){ .cta{ grid-template-columns:1fr; } }
.cta .copy h2{ margin:.2rem 0 8px; font-weight:800; }
.cta .copy p{ color:var(--gd-muted); margin:0 0 14px; }
.cta .art{ border:1px dashed var(--gd-stroke); border-radius:var(--gd-radius-card); display:grid; place-items:center; color:var(--gd-muted); background:var(--gd-beige); }
.activity{ margin-top:20px; }
.activity .row{ display:flex; gap:10px; align-items:baseline; padding:12px 16px; border-top:1px solid var(--gd-stroke-2); }
.activity .row:first-child{ border-top:0; }
.activity .icon{ width:26px; height:26px; border-radius:999px; display:grid; place-items:center; font-size:14px; background:#e8f7f5; color:#0d9488; }
.activity .text b{ font-weight:800; }
.activity .time{ margin-left:auto; color:var(--gd-muted); font-weight:600; }

/* BUTTONS */
.btn{ display:inline-flex; align-items:center; justify-content:center; gap:.5rem; font-weight:700; border-radius:12px;
  border:1px solid transparent; padding:10px 16px; background:#f3f1ed; color:var(--gd-text); }
.btn:hover{ background:#ece7e0; }
.btn-primary{ background:var(--gd-accent); color:#fff; }
.btn-primary:hover{ filter:brightness(.95); }
.btn-outline{ background:transparent; border-color:var(--gd-stroke); }
.btn-outline:hover{ background:var(--gd-beige); }

/* TABLE helpers */
.table-soft thead th{ background:var(--gd-beige); }
.badge-accent{ background:var(--gd-accent); color:#fff; border-radius:999px; padding:.3rem .6rem; font-weight:700; }

/* UTIL */
.w-100{ width:100%; } .mt-10{ margin-top:10px; } .text-muted{ color:var(--gd-muted); }

/* ===== Wizard Step 1 – Company Data (Good-style polish) ===== */
.card-soft {
  border: 1px solid var(--gd-stroke-2, #eee);
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 1px 3px rgba(0,0,0,0.04);
}

.card-soft .card-header {
  background: #faf9f8;
  font-weight: 600;
  font-size: 0.95rem;
  padding: 0.75rem 1rem;
  border-bottom: 1px solid var(--gd-stroke-2, #eee);
}

.form-label {
  font-weight: 500;
  color: #444;
}

.form-control, .form-select {
  border-radius: 8px;
  border: 1px solid var(--gd-stroke-2, #ddd);
  padding: 0.5rem 0.75rem;
  font-size: 0.95rem;
}

.form-control:focus, .form-select:focus {
  border-color: var(--gd-accent, #00bfa5);
  box-shadow: 0 0 0 2px rgba(0,191,165,0.15);
}

.form-text {
  font-size: 0.8rem;
  color: var(--gd-muted, #777);
}

.btn-accent {
  background-color: var(--gd-accent, #00bfa5);
  border-color: var(--gd-accent, #00bfa5);
  color: #fff;
}

.btn-accent:hover {
  background-color: #00a890;
  border-color: #00a890;
}

.badge {
  background-color: #f4f0ec;
  color: #6b5e54;
  border-radius: 999px;
  padding: 0.35rem 0.75rem;
  font-size: 0.75rem;
}

.hr-soft {
  border: none;
  border-top: 1px solid var(--gd-stroke-2, #eee);
}

.btn-outline-secondary {
  border-radius: 999px;
  border-color: var(--gd-stroke-2, #ddd);
  background: #fff;
}

.btn-outline-secondary:hover {
  background: #f9f7f5;
}

/* Wizard page: match Good container width */
.container-app {
  max-width: 1140px; /* samma som Good */
  margin: 0 auto;
  padding-left: 1rem;
  padding-right: 1rem;
}
/* ===== Global page headings ===== */
.page-kicker{
  color: var(--gd-muted);
  font-weight:700;
  letter-spacing:.2px;
  margin: 0 0 4px;
}
.page-title{
  margin:0 0 12px;
  font-weight:800;
  font-size: clamp(22px, 2.2vw, 28px);
}
.section-title{
  margin:0 0 10px;
  font-weight:800;
  font-size: 1.05rem;
}

/* Add some breathing room for main areas (applies everywhere) */
main.container-app{ padding-top: 18px; padding-bottom: 48px; }

/* ===== “Chip” style buttons (Good‑like) ===== */
.chip{
  display:inline-flex; align-items:center; gap:.5rem;
  border:1px solid var(--gd-stroke);
  background: var(--gd-beige);
  border-radius: 999px;
  padding:10px 16px;
  font-weight:700; color: var(--gd-text);
  transition: all .15s ease;
}
.chip:hover{
  border-color: var(--gd-accent);
  background:#e9fbf8; /* light cyan hover */
}
.chip.is-active, .chip.active{
  background: var(--gd-accent);
  border-color: var(--gd-accent);
  color:#fff;
}

/* Chip toggle group with real inputs (radio/checkbox) */
.chip-toggle{ display:flex; gap:12px; flex-wrap:wrap; }
.chip-toggle input{ position:absolute; opacity:0; pointer-events:none; }
.chip-toggle label{
  cursor:pointer;
  display:inline-flex; align-items:center;
  border:1px solid var(--gd-stroke);
  background: var(--gd-beige);
  border-radius:999px;
  padding:10px 18px;
  font-weight:800; color: var(--gd-text);
  transition: all .15s ease;
}
.chip-toggle label:hover{
  border-color: var(--gd-accent); background:#e9fbf8;
}
.chip-toggle input:checked + label{
  background: var(--gd-accent); border-color: var(--gd-accent); color:#fff;
}

/* Make Bootstrap's outline buttons behave like our chips too */
.btn-outline-secondary{
  border-radius:999px;
  border-color: var(--gd-stroke);
  background: var(--gd-beige);
  font-weight:800; color: var(--gd-text);
}
.btn-outline-secondary:hover{
  border-color: var(--gd-accent); background:#e9fbf8; color: var(--gd-text);
}
.btn-check:checked + .btn-outline-secondary,
.btn-outline-secondary.active{
  background: var(--gd-accent) !important;
  border-color: var(--gd-accent) !important;
  color:#fff !important;
}

/* === Global polish applied across pages === */

/* Rubriktitlar (används i steg-sidorna) */
.gd-title-row { display:flex; align-items:flex-end; justify-content:space-between; gap:16px; padding: 0 0 10px; }
.gd-title-row h1 { margin:0; font-size: clamp(22px, 2.2vw, 28px); font-weight:800; }

/* Chip-toggle (aktif/hover i cyan) */
.chip-toggle{
  border:1px solid var(--gd-stroke);
  background: var(--gd-beige);
  border-radius: 999px;
  padding: 8px 16px;
  font-weight: 800;
}
.chip-toggle:hover{ background: var(--gd-beige-strong); }
.chip-toggle.active{
  background: var(--gd-accent);
  border-color: var(--gd-accent);
  color:#fff;
}

/* Accent färg för knappar – hover och active */
.btn-outline-secondary:hover,
.btn-outline-secondary:focus,
.btn-outline-secondary:active,
.btn-outline-secondary.active {
  color: #0d9488; /* cyan text */
  border-color: #0d9488; /* cyan kant */
  background-color: rgba(13, 148, 136, 0.1); /* ljus cyan bakgrund */
}

.btn-accent {
  background-color: #0d9488;
  color: #fff;
  border-color: #0d9488;
}

.btn-accent:hover,
.btn-accent:focus,
.btn-accent:active,
.btn-accent.active {
  background-color: #0b7f73;
  border-color: #0b7f73;
  color: #fff;
}
/* ---------------------------------------
   Wizard step title (Good-like)
--------------------------------------- */
.gd-step-title {
  margin: 10px 0 16px;
  padding: 6px 0 0;
}
.gd-step-title .kicker {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-weight: 800;
  font-size: .95rem;
  color: var(--gd-muted);
  padding: 6px 12px;
  border: 1px solid var(--gd-stroke);
  background: var(--gd-beige);
  border-radius: 999px;
}
.gd-step-title h1 {
  margin: 10px 0 0;
  font-weight: 800;
  font-size: clamp(22px, 2.1vw, 28px);
  color: var(--gd-text);
}
.gd-step-title .kicker .dot {
  width: 6px; height: 6px; border-radius: 50%;
  background: var(--gd-muted); opacity: .5;
}
.container-app.gd-step-wrap { padding-top: 18px; padding-bottom: 24px; }

/* Soft pill badge used for step labels */
.gd-badge-soft{
  background: var(--gd-beige);
  border:1px solid var(--gd-stroke);
  color: var(--gd-text);
  font-weight:700;
}
