:root{
      --navy:#0D1B2A;
      --grey:#F4F6F8;
      --white:#FFFFFF;
      --line:#e5e7eb;
      --red:#b91c1c;
      --amber:#b45309;
      --green:#15803d;
      --gold:#a16207;
      --ink:#111827;
      font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    }

    *{box-sizing:border-box;}
    body{margin:0;padding:1.5rem;background:var(--grey);color:var(--navy);}
    .wrap{
      max-width:1280px;
      margin:0 auto;
      background:var(--white);
      border-radius:16px;
      padding:2rem;
      box-shadow:0 12px 30px rgba(0,0,0,0.06);
    }

    h1{margin:0 0 .4rem;font-size:1.85rem;}
    .sub{margin:0 0 1.2rem;color:#4b5563;font-size:.98rem;line-height:1.4;}
    h2{margin:1.2rem 0 .7rem;font-size:1.15rem;}

    label{
      display:block;
      font-size:.85rem;
      font-weight:800;
      margin-bottom:.25rem;
      color:var(--ink);
    }

    input[type="number"],
    input[type="text"],
    select,
    textarea{
      width:100%;
      padding:.55rem .7rem;
      border-radius:10px;
      border:1px solid #d1d5db;
      font-size:.95rem;
      background:#fff;
    }

    textarea{min-height:150px;resize:vertical;}
    input:focus, select:focus, textarea:focus{
      outline:none;
      border-color:var(--green);
      box-shadow:0 0 0 1px rgba(21,128,61,0.18);
    }

    .grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem;}
    .card{background:var(--grey);border-radius:12px;padding:1rem 1.2rem;}
    .row{display:flex;justify-content:space-between;gap:1rem;margin:.25rem 0;}
    .lbl{color:#374151;}
    .val{font-weight:900;}
    .note{color:#6b7280;font-size:.86rem;margin-top:.6rem;line-height:1.4;}
    .tiny{font-size:.8rem;color:#6b7280;margin-top:.35rem;line-height:1.35;}
    .hr{height:1px;background:var(--line);margin:1rem 0;}

    .check{
      display:flex;
      gap:.55rem;
      align-items:flex-start;
      margin:.35rem 0;
    }
    .check input{margin-top:.25rem;flex:0 0 auto;}
    .check label{margin:0;font-weight:700;}

    button{
      margin-top:1rem;
      padding:.85rem 1.1rem;
      border-radius:999px;
      border:none;
      background:var(--navy);
      color:#fff;
      font-weight:900;
      cursor:pointer;
      transition:.2s;
    }
    button:hover{opacity:.92;}
    .btnRow{display:flex;gap:.7rem;flex-wrap:wrap;}
    .btnAlt{background:#1f2937;}
    .btnGreen{background:#0f766e;}

    .zone{
      display:inline-block;
      padding:.25rem .6rem;
      border-radius:999px;
      font-weight:900;
      font-size:.8rem;
      line-height:1.2;
    }
    .z-red{background:#fee2e2;color:var(--red);}
    .z-amber{background:#ffedd5;color:var(--amber);}
    .z-green{background:#dcfce7;color:var(--green);}
    .z-gold{background:#fef3c7;color:var(--gold);}

    .results{display:none;margin-top:1.2rem;}
    .day-title{font-weight:900;margin:.8rem 0 .35rem;color:var(--ink);}
    .day-grid{
      display:grid;
      grid-template-columns:repeat(auto-fit,minmax(170px,1fr));
      gap:.8rem;
      margin-bottom:.4rem;
    }

    .progress-shell{background:#f1f5f9;border-radius:14px;padding:12px;}
    .progress-track{
      position:relative;
      height:18px;
      border-radius:999px;
      background:linear-gradient(to right,
        rgba(185,28,28,0.18) 0%,
        rgba(185,28,28,0.18) 25%,
        rgba(180,83,9,0.18) 25%,
        rgba(180,83,9,0.18) 50%,
        rgba(21,128,61,0.18) 50%,
        rgba(21,128,61,0.18) 75%,
        rgba(161,98,7,0.18) 75%,
        rgba(161,98,7,0.18) 100%);
      overflow:hidden;
    }
    .progress-dot{
      position:absolute;
      top:50%;
      transform:translate(-50%,-50%);
      width:12px;
      height:12px;
      border-radius:999px;
      background:var(--navy);
      box-shadow:0 2px 8px rgba(0,0,0,0.15);
    }
    .progress-dot.net{background:#0f766e;}
    .progress-labels{
      display:grid;
      grid-template-columns:repeat(4,1fr);
      gap:.5rem;
      font-size:.78rem;
      color:#475569;
      margin-top:8px;
      font-weight:800;
      text-align:center;
    }

    .bad{color:var(--red);font-weight:900;}
    .warn{color:var(--amber);font-weight:900;}
    .good{color:var(--green);font-weight:900;}
    .chart-box{height:270px;position:relative;}
    @media (max-width: 900px){ .chart-box{height:240px;} }

    table{width:100%;border-collapse:collapse;font-size:.92rem;}
    th,td{
      padding:.6rem .55rem;
      border-bottom:1px solid var(--line);
      text-align:left;
      vertical-align:top;
    }
    th{font-size:.85rem;color:#475569;}

    .pdfArea{background:var(--white);padding:0;border-radius:10px;}
    .smallCaps{
      letter-spacing:.04em;
      text-transform:uppercase;
      font-size:.78rem;
      color:#64748b;
      font-weight:900;
    }
