/* Auto-generated by scripts/css_mechanical_split.py
   Source: portal-base-public_part_01.css
   Part 1/2 - load order critical.
   Do not reorder or merge without re-running the splitter. */

/* Auto-generated by scripts/css_mechanical_split.py
   Source: portal-base-public.css
   Part 1/3 - load order critical.
   Do not reorder or merge without re-running the splitter. */

:root{
      --topbar-h: 84px;
      --bg:#f6fbf8;
      --surface:#ffffff;
      --surface-2:#f3faf6;
      --text:#18352A;
      --muted:#5F7D71;
      --line:#CFE2D8;
      --brand:#0F6B4B;
      --brand-2:#0A5A3F;
      --brand-strong:#0A5A3F;
      --brand-soft:#2E8B68;
      --brand-rgb:15,107,75;
      --brand-ghost:#EDF7F2;
      --brand-wash:#F6FBF8;
      --accent:#8AAE9F;
      --ink-strong:#18352A;
      --ink:#2D5243;
      --card:#FEFFFE;
      --card-soft:#F3FAF6;
      --hero-bg:
        radial-gradient(1200px 420px at 20% 0%, rgba(var(--brand-rgb),.10), transparent 60%),
        radial-gradient(900px 300px at 85% 10%, rgba(var(--brand-rgb),.08), transparent 55%),
        linear-gradient(180deg, var(--brand-wash) 0%, var(--brand-ghost) 100%);
      --page-bg:
        radial-gradient(circle at 10% 10%, rgba(var(--brand-rgb),.06), transparent 24%),
        radial-gradient(circle at 88% 18%, rgba(var(--brand-rgb),.05), transparent 22%),
        linear-gradient(180deg,var(--brand-wash) 0%, #eef7f1 100%);
      --footer-bg:linear-gradient(180deg,var(--brand-wash) 0%, var(--brand-ghost) 100%);
      --shadow:0 10px 28px rgba(15,23,42,.07);
      --shadow-soft:0 10px 30px rgba(var(--brand-rgb),.08);
      --shadow-strong:0 16px 40px rgba(var(--brand-rgb),.14);
      --radius:22px;
      --radius-sm:16px;
      --max:1440px;
      --font-display:"Jost",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
      --font-body:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
    }

    *{box-sizing:border-box}
    html{scroll-behavior:smooth}
    body{
      margin:0;
      font-family:var(--font-body);
      color:var(--ink);
      background:var(--page-bg);
      min-height:100vh;
    }

    a{color:inherit;text-decoration:none}
    img{max-width:100%;display:block}
    .container{width:min(calc(100% - 32px), var(--max));margin:0 auto}

    .topbar{
      position:sticky;top:0;z-index:40;
      backdrop-filter:blur(14px);
      background:rgba(248,250,252,.84);
      border-bottom:1px solid rgba(219,227,239,.92);
    }

    .topbar-inner{
      display:flex;align-items:center;justify-content:space-between;gap:20px;
      min-height:146px;
    }

    .brand{
      display:flex;align-items:center;gap:14px;
      font-family:var(--font-display);
    }

    .brand-logo{
      display:block;
      height:128px;
      width:auto;
      max-width:min(84vw, 1500px);
      object-fit:contain;
    }

    .brand-mark{
      width:42px;height:42px;border-radius:14px;
      background:linear-gradient(135deg,var(--brand),var(--brand-2));
      color:#fff;display:grid;place-items:center;
      font-size:14px;font-weight:700;
      box-shadow:var(--shadow);
    }

    .brand-copy small{
      display:block;color:var(--muted);
      font-weight:500;font-size:11px;letter-spacing:.16em;text-transform:uppercase
    }

    .brand-copy strong{
      display:block;font-size:20px;font-weight:600;letter-spacing:-.03em
    }

    .nav{
      display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end;
      font-family:var(--font-display);
    }

    .nav a{
      padding:11px 15px;border-radius:999px;
      font-weight:500;font-size:14px;color:#1f2937;
      letter-spacing:.01em;
    }

    .nav a:hover{background:rgba(16,63,107,.08)}

    .nav .cta{
      background:var(--brand);color:#fff;
      box-shadow:0 8px 22px rgba(16,63,107,.18);
      font-weight:600;
    }

    .nav .cta:hover{background:var(--brand-2)}

    .portal-topbar{
      display:grid;
      grid-template-columns:minmax(260px,1.35fr) minmax(170px,.82fr) minmax(150px,.72fr) auto auto;
      gap:12px;
      align-items:center;
      width:100%;
      min-width:0;
    }

    .portal-col-search,
    .portal-col-stack,
    .portal-col-actions,
    .portal-col-auth{
      min-width:0;
    }

    .portal-col-search input,
    .portal-col-stack select,
    .portal-col-stack input{
      width:100%;
      outline:none;
      font-family:var(--font-body);
      color:var(--ink-strong);
      border:1px solid rgba(var(--brand-rgb), .14);
      background:rgba(255,255,255,.90);
      -webkit-appearance:none;
      appearance:none;
    }

    .portal-col-search input{
      min-height:42px;
      height:42px;
      border-radius:999px;
      padding:0 16px;
      font-size:13px;
    }

    .portal-col-stack{
      display:grid;
      grid-template-columns:1fr;
      gap:8px;
    }

    .portal-col-stack select,
    .portal-col-stack input{
      min-height:36px;
      height:36px;
      border-radius:999px;
      padding:0 12px;
      font-size:12px;
    }

    .portal-col-stack select{
      color:var(--brand-strong);
    }

    .portal-col-actions{
      display:flex;
      flex-direction:column;
      align-items:flex-end;
      justify-content:center;
      gap:8px;
      align-self:center;
    }

    .portal-actions-row{
      display:flex;
      align-items:center;
      justify-content:flex-end;
      gap:10px;
      flex-wrap:wrap;
    }

    .portal-actions-row .btn{
      min-height:40px;
      padding:0 16px;
    }

    .portal-user-chip{
      display:inline-flex;
      align-items:center;
      min-height:40px;
      padding:0 14px;
      border-radius:999px;
      background:#fff;
      border:1px solid var(--line);
      font-family:var(--font-display);
      font-size:13px;
      font-weight:600;
      color:var(--ink-strong);
      white-space:nowrap;
    }

    .portal-save-row{
      min-height:34px;
      display:flex;
      align-items:center;
      justify-content:flex-end;
      width:100%;
    }

    .portal-save-hint{
      font-family:var(--font-body);
      font-size:12px;
      line-height:1.35;
      color:var(--muted);
      text-align:right;
      max-width:340px;
    }

    .portal-save-row .btn{
      min-height:34px;
      padding:0 14px;
      font-size:12px;
    }

    .page{padding:28px 0 54px}

    .hero-shell{
      background:linear-gradient(135deg, rgba(255,255,255,.92), rgba(237,244,251,.92));
      border:1px solid rgba(219,227,239,.95);
      border-radius:30px;
      box-shadow:var(--shadow);
    }

    .eyebrow{
      display:inline-block;
      font-size:11px;
      font-weight:700;
      letter-spacing:.20em;
      text-transform:uppercase;
      color:var(--brand);
      margin-bottom:10px;
      font-family:var(--font-display);
    }

    h1,h2,h3{
      margin:0;
      letter-spacing:-.035em;
      font-family:var(--font-display);
      font-weight:600;
    }

    .lead{
      color:var(--muted);
      font-size:15px;
      line-height:1.7
    }

    .section{margin-top:26px}

    .card{
      background:var(--surface);
      border:1px solid var(--line);
      border-radius:var(--radius);
      box-shadow:var(--shadow);
    }

    .soft-card{
      background:linear-gradient(180deg,#fff,#f7fafc);
      border:1px solid var(--line);
      border-radius:var(--radius);
      box-shadow:var(--shadow);
    }

    .btn-row{display:flex;gap:12px;flex-wrap:wrap}

    .btn{
      display:inline-flex;align-items:center;justify-content:center;gap:8px;
      min-height:46px;padding:0 17px;border-radius:999px;border:1px solid transparent;
      font-weight:600;font-size:13px;cursor:pointer;
      transition:.18s ease;
      font-family:var(--font-display);
      letter-spacing:.01em;
    }

    .btn-primary{background:var(--brand);color:#fff}
    .btn-primary:hover{background:var(--brand-2);transform:translateY(-1px)}
    .btn-secondary{background:#fff;border-color:var(--line);color:var(--text)}
    .btn-secondary:hover{background:#f8fbff}
    .btn-soft{background:var(--brand-soft);color:var(--brand);border-color:#cfe0f2}

    .metric-grid{
      display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;
    }

    .metric{padding:22px}
    .metric .k{
      font-size:11px;text-transform:uppercase;letter-spacing:.16em;color:var(--muted);font-weight:800;
      font-family:var(--font-display);
    }
    .metric .v{
      font-size:30px;font-weight:700;margin-top:8px;
      font-family:var(--font-display);
      letter-spacing:-.04em;
    }
    .metric .s{font-size:13px;color:var(--muted);margin-top:7px}

    .footer,
    footer{
      margin-top:24px !important;
    }

    .footer-grid{
      display:grid !important;
      grid-template-columns:minmax(320px,1.25fr) minmax(150px,.55fr) minmax(170px,.6fr) minmax(170px,.6fr) !important;
      gap:22px !important;
      padding:32px !important;
      border-radius:30px !important;
      background:linear-gradient(135deg, var(--card), var(--card-soft)) !important;
      border:1px solid rgba(var(--brand-rgb), .14) !important;
      box-shadow:var(--shadow-soft) !important;
      align-items:start !important;
    }

    .footer-grid > div{
      min-width:0 !important;
    }

    .footer-brand{
      flex-direction:column !important;
      align-items:flex-start !important;
      gap:10px !important;
    }

    .footer-logo img{
      width:150px !important;
      max-width:100% !important;
      height:auto !important;
    }

    .footer-brand-text{
      max-width:none !important;
      font-size:13px !important;
      line-height:1.45 !important;
    }
    .stack{display:flex;flex-direction:column;gap:12px}

    /* Footer pubblico pro */
    .footer{
      margin-top:56px !important;
      padding:0 0 28px !important;
      background:var(--footer-bg) !important;
    }

    .footer-grid{
      display:grid !important;
      grid-template-columns:1.18fr .72fr .72fr .72fr !important;
      gap:24px !important;
      padding:28px !important;
      border-radius:30px !important;
      background:linear-gradient(135deg, var(--card), var(--card-soft)) !important;
      border:1px solid rgba(var(--brand-rgb), .14) !important;
      box-shadow:var(--shadow-soft) !important;
    }

    .footer-brand{
      display:flex !important;
      flex-direction:column !important;
      align-items:flex-start !important;
      gap:14px !important;
    }

    .footer-logo{
      display:inline-flex !important;
      align-items:center !important;
      text-decoration:none !important;
    }

    .footer-logo img{
      width:132px !important;
      max-width:100% !important;
      height:auto !important;
      display:block !important;
    }

