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

    .footer-brand-text{
      max-width:380px !important;
      font-size:14px !important;
      line-height:1.75 !important;
      color:var(--muted) !important;
    }

    .footer h4{
      margin:0 0 14px !important;
      font-size:12px !important;
      text-transform:uppercase !important;
      letter-spacing:.16em !important;
      color:var(--brand-strong) !important;
      font-weight:800 !important;
      font-family:var(--font-display) !important;
    }

    .footer .stack{
      display:flex !important;
      flex-direction:column !important;
      gap:10px !important;
    }

    .footer .stack a{
      color:var(--ink) !important;
      text-decoration:none !important;
      font-size:14px !important;
      line-height:1.35 !important;
    }

    .footer .stack a:hover{
      color:var(--brand-strong) !important;
      text-decoration:underline !important;
      text-underline-offset:4px !important;
    }

    .footer-cta-row{
      display:flex;
      flex-wrap:wrap;
      gap:10px;
      margin-top:18px;
    }

    .footer-cta{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      min-height:40px;
      padding:0 14px;
      border-radius:999px;
      font-size:13px;
      font-weight:700;
      text-decoration:none;
      border:1px solid rgba(var(--brand-rgb), .18);
      background:var(--card);
      color:var(--brand-strong);
    }

    .footer-cta-primary{
      background:var(--brand-strong) !important;
      color:#fff !important;
      border-color:var(--brand-strong) !important;
    }

    .footer-cta-primary:visited,
    .footer-cta-primary:hover{
      color:#fff !important;
    }

    .footer-cta-primary:visited,
    .footer-cta-primary:hover{
      color:#fff !important;
    }

    .footer-bottom{
      margin-top:16px;
      display:flex;
      justify-content:space-between;
      gap:14px;
      flex-wrap:wrap;
      color:var(--muted);
      font-size:12px;
      padding:0 4px;
    }


    /* footer-grid-desktop-force */
    @media (min-width:901px){
      .footer-grid{
        grid-template-columns:minmax(320px,1.25fr) minmax(150px,.55fr) minmax(170px,.6fr) minmax(170px,.6fr) !important;
      }

      .footer-grid > div:not(:first-child){
        padding-left:18px !important;
        border-left:1px solid rgba(var(--brand-rgb), .10) !important;
      }

      .footer .stack a{
        padding:7px 0 !important;
        border-bottom:1px solid rgba(var(--brand-rgb), .07) !important;
      }

      .footer .stack a:last-child{
        border-bottom:0 !important;
      }
    }

    @media (max-width:900px){
      .footer{
        margin-top:36px !important;
        padding-bottom:18px !important;
      }

      .footer-grid{
        grid-template-columns:1fr !important;
        gap:22px !important;
        padding:22px !important;
        border-radius:24px !important;
      }

      .footer-brand-text{
        max-width:none !important;
      }

      .footer-bottom{
        flex-direction:column;
      }
    }


    .empty-state{
      padding:32px;border-radius:28px;background:#fff;border:1px dashed #c9d7e7;color:var(--muted)
    }

    .public-form input,.public-form select,.public-form textarea{
      width:100%;border:1px solid var(--line);background:#fff;border-radius:16px;
      padding:13px 15px;font-size:14px;color:var(--text);outline:none;
      font-family:var(--font-body);
    }

    .public-form input:focus,.public-form select:focus,.public-form textarea:focus{
      border-color:#9fc1e3;box-shadow:0 0 0 4px rgba(35,95,150,.09);
    }

    .public-form label{
      display:block;font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:8px;
      font-family:var(--font-display);
    }

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

    .pill{
      display:inline-flex;align-items:center;gap:8px;
      border-radius:999px;padding:8px 12px;background:#fff;border:1px solid var(--line);
      font-size:12px;font-weight:600;color:#334155;
      font-family:var(--font-display);
      letter-spacing:.02em;
    }

    .muted{color:var(--muted)}
    .desktop-only{display:block}
    .mobile-only{display:none}

    @media (max-width: 1180px){
      .metric-grid,.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}
      .footer-grid{grid-template-columns:1fr 1fr}
    }

    @media (max-width: 1380px){
      .portal-topbar{
        grid-template-columns:minmax(220px,1.15fr) minmax(150px,.8fr) minmax(138px,.7fr) auto;
      }

      .portal-col-auth{
        grid-column:1 / -1;
        align-items:flex-start;
      }

      .portal-actions-row,
      .portal-save-row{
        justify-content:flex-start;
      }

      .portal-save-hint{
        text-align:left;
      }
    }

    @media (max-width: 980px){
      .portal-topbar{
        grid-template-columns:1fr;
        gap:10px;
      }

      .portal-col-actions{
        align-items:flex-start;
      }
    }

    @media (max-width: 640px){
      .home-shell,
      .hero-shell,
      .portal-list-shell,
      #portalDashMain,
      #portalDashKpi,
      main > section:last-of-type,
      main > div:last-of-type{
        margin-bottom:0 !important;
        padding-bottom:0 !important;
      }

      .home-shell > section:last-of-type,
      main > section:last-of-type,
      .section:last-of-type{
        margin-bottom:0 !important;
      }

      footer,
      .footer,
      .site-footer,
      .public-footer{
        margin-top:16px !important;
      }
    }

    @media (max-width: 980px){
      .portal-topbar{
        grid-template-columns:1fr;
        gap:10px;
      }

      .portal-col-actions{
        align-items:flex-start;
      }

      .portal-actions-row,
      .portal-save-row{
        justify-content:flex-start;
      }
    }

    @media (max-width: 860px){
      .topbar-inner{align-items:flex-start;padding:14px 0}
      .nav{width:100%;justify-content:flex-start}
      .grid-3,.grid-2,.metric-grid,.footer-grid,.grid-4{grid-template-columns:1fr}
      .desktop-only{display:none}
      .mobile-only{display:block}
    }

    /* ===== NAV RESTYLE ===== */
    .topbar{
      position: sticky;
      top: 0;
      z-index: 50;
      backdrop-filter: blur(14px);
    }

    .topbar-inner{
      min-height: 96px !important;
      gap: 18px;
    }

    .brand{
      flex: 0 0 auto;
    }

    .nav{
      display: flex;
      align-items: center;
      justify-content: flex-end;
      gap: 10px;
      flex-wrap: wrap;
      margin-left: auto;
    }

    .nav > a{
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-height: 42px;
      padding: 0 16px;
      border-radius: 999px;
      border: 1px solid transparent;
      background: rgba(255,255,255,.42);
      color: var(--ink-strong) !important;
      font-size: 14px;
      font-weight: 600;
      letter-spacing: .01em;
      text-decoration: none;
      transition: all .18s ease;
      white-space: nowrap;
    }

    .nav > a:hover{
      background: var(--brand-ghost);
      border-color: var(--line);
      color: var(--brand-strong) !important;
      transform: translateY(-1px);
      box-shadow: 0 8px 18px rgba(var(--brand-rgb),.10);
    }

    .nav > a.cta{
      background: linear-gradient(180deg, var(--brand-soft) 0%, var(--brand) 100%) !important;
      border-color: var(--brand-strong) !important;
      color: #fff !important;
      box-shadow: 0 10px 22px rgba(var(--brand-rgb),.18);
      padding: 0 18px;
      font-weight: 700;
    }

    .nav > a.cta:hover{
      background: linear-gradient(180deg, var(--brand-soft) 0%, var(--brand-strong) 100%) !important;
      color: #fff !important;
      border-color: #B8321E !important;
      box-shadow: 0 12px 24px rgba(var(--brand-rgb),.22);
    }

    @media (max-width: 1100px){
      .topbar-inner{
        min-height: 88px !important;
      }

      .nav{
        gap: 8px;
      }

      .nav > a{
        min-height: 40px;
        padding: 0 14px;
        font-size: 12px;
      }
    }

