/* Auto-extracted from /portal/index.html (keep identical behavior) */
html, body{ height:100%; }

  /* Hamburger paneli: header içinde */
  .pb19-topbar .pb19-rightbar{ position:relative; }
  .pb19-topbar .pb19-rightbar .pb19-fab{ position:relative !important; inset:auto !important; margin:0; }
  .pb19-topbar .pb19-rightbar .pb19-fab-panel{
    position:absolute !important;
    right:0;
    top: calc(100% + 10px);
    bottom:auto !important;
    min-width:180px;
  }

  /* Ölçek */
  body.pb19-portal{
    --h: 44px;
    --pad: 20px;
    --row-gap: 12px;
    --pill-px: 12px;

    --pb19-gap: 14px;
    --pb19-btn-h: var(--h);
    --pb19-fs-pill: var(--pb19-ui-control-fs);

    --toast-btm: 86px;
  }

  @media (max-width: 520px){
    body.pb19-portal{
      --h: 40px;
      --pad: 14px;
      --row-gap: 10px;
      --pill-px: 11px;
      --pb19-gap: 12px;
      --pb19-fs-pill: var(--pb19-ui-control-fs);
      --toast-btm: 76px;
    }
  }

  @media (max-width: 920px) and (orientation:landscape){
    body.pb19-portal{
      --h: 36px;
      --pad: 12px;
      --row-gap: 10px;
      --pill-px: 10px;
      --pb19-gap: 10px;
      --pb19-fs-pill: var(--pb19-ui-control-fs);
      --toast-btm: 66px;
    }
  }

  @media (max-height: 430px) and (orientation:landscape){
    body.pb19-portal{
      --h: 34px;
      --pad: 11px;
      --row-gap: 9px;
      --pill-px: 10px;
      --pb19-gap: 9px;
      --pb19-fs-pill: 11.5px;
      --toast-btm: 58px;
    }
  }

  #portalLogo{
    cursor: default;
    -webkit-tap-highlight-color: transparent;
    user-select:none;
    -webkit-user-select:none;
    touch-action: manipulation;
  }
  #portalLogo img{ pointer-events:none; }

  /* Sayfa iskeleti */
  body.pb19-portal .pb19-container{ max-width:none; width:100%; height:100%; padding:0; margin:0; }
  body.pb19-portal .pb19-shell{ height:100%; min-height:0; display:flex; flex-direction:column; }
  body.pb19-portal .pb19-stage{
    flex:1;
    min-height:0;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:0;
  }

  /* Panel */
  body.pb19-portal .pb19-panel{
    display:flex;
    flex-direction:column;
    gap: var(--pb19-gap);
    min-height:0;
  }

  /* Telefon yatay: kartlar yan yana */
  @media (max-width: 920px) and (orientation:landscape){
    body.pb19-portal .pb19-panel{
      width: min(var(--pb19-panel-w), 96vw);
      max-width: none;
      flex-direction: row;
      align-items: stretch;
    }
    .pb19-card.portal-card{ flex:1; }
  }

  /* Kartlar */
  .pb19-card.portal-card{
    padding: var(--pad);
    display:flex;
    flex-direction:column;
    gap: var(--pb19-gap);
    overflow:hidden;
    border-radius: var(--pb19-radius);
    align-items: stretch;
  }

  .portal-body{
    width:100%;
    flex: 1;
    min-height: 0;
    display:flex;
    flex-direction:column;
    align-items: stretch;
    justify-content: flex-start;
    gap: var(--pb19-gap);
    margin: 0;
  }

  /* Üst kart: SHA çizgisi en alta */
  #shaOut{ margin-top:auto; }

  /* Alt kart: hash giriş çizgisi en alta */
  #hashInput{ margin-top:auto; }

  /* Satır: 2 kolon */
  .portal-row2{
    display:grid;
    grid-template-columns: minmax(0,1fr) minmax(0,1fr);
    gap: var(--row-gap);
    align-items:center;
    width:100%;
    min-width:0;
  }

  /* ✅ İSTENEN: Üret/Gönder ve Sorgula/Kopyala satırlarını ortaya al
     - Butonlar yine kendi kolonunda 100% kalır
     - Sadece satırın toplam genişliği kısılır ve ortalanır
  */
  .portal-row2.is-center{
    max-width: min(520px, 100%);
    margin-inline: auto;
  }

  /* Küçük ekranlarda biraz daha rahat olsun */
  @media (max-width: 520px){
    .portal-row2.is-center{
      max-width: 100%;
    }
  }

  /* Pill (label/button) */
  .portal-pill{
  font-family: inherit;
  font-size: var(--pb19-ui-control-fs);
  font-weight: var(--pb19-ui-control-fw);
  letter-spacing: var(--pb19-ui-control-ls);
    -webkit-appearance: none;
    appearance: none;
    height: var(--h);
    width:100%;
    min-width:0;
    padding: 0 var(--pill-px);
    border-radius: var(--pb19-radius-sm);
    border: 1px solid rgba(255,255,255,.14);
    background: rgba(255,255,255,.06);
    color: inherit;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    cursor:pointer;
    user-select:none;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
    line-height: 1;
    box-sizing:border-box;
    margin:0;
  }
  .portal-pill:active{ transform: translateY(1px); }
  .portal-pill[disabled]{ opacity:.45; cursor:default; transform:none; }

  /* Butonlar */
  .portal-wbtn{
    -webkit-appearance: none;
    appearance: none;
    height: var(--h);
    border-radius: var(--pb19-radius-sm);
    border: 1px solid rgba(255,255,255,.14);
    color: rgba(255,255,255,.95);
    background: rgba(255,255,255,.06);
    display:flex;
    align-items:center;
    justify-content:center;
    cursor:pointer;
    user-select:none;
    width:100%;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
    padding: 0 var(--pill-px);
    min-width:0;
    box-sizing:border-box;
    margin:0;
  }
  .portal-wbtn:active{ transform: translateY(1px); }
  .portal-wbtn[disabled]{ opacity:.45; cursor:default; transform:none; }

  .portal-wbtn.make{
    background: linear-gradient(180deg, rgba(56,189,248,.20), rgba(56,189,248,.08));
    border-color: rgba(56,189,248,.28);
  }
  .portal-wbtn.send{
    background: linear-gradient(180deg, rgba(70,224,183,.20), rgba(70,224,183,.08));
    border-color: rgba(70,224,183,.28);
  }
  .portal-wbtn.query{
    background: linear-gradient(180deg, rgba(99,102,241,.20), rgba(99,102,241,.08));
    border-color: rgba(99,102,241,.28);
  }
  .portal-wbtn.copy{
    background: linear-gradient(180deg, rgba(255,255,255,.10), rgba(255,255,255,.05));
  }

  /* Input */
  .pb19-input.portal-one{
    height: var(--h) !important;
    line-height: var(--h) !important;
    padding: 0 var(--pill-px) !important;
    width:100% !important;
    max-width:none !important;
    min-width:0;
    border-radius: var(--pb19-radius-sm) !important;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
    font-variant-numeric: tabular-nums;
    text-align:center;
    box-sizing:border-box;
    display:block;
  }
  .portal-mono{ font-variant-numeric: tabular-nums; letter-spacing: .15px; }

  .pb19-input.portal-one.is-empty{
    border-color: rgba(255,255,255,.10) !important;
    background: rgba(255,255,255,.03) !important;
  }
  .pb19-input.portal-one.is-ok{
    border-color: rgba(70,224,183,.35) !important;
    background: rgba(70,224,183,.05) !important;
  }
  .pb19-input.portal-one.is-bad{
    border-color: rgba(255,90,107,.35) !important;
    background: rgba(255,90,107,.05) !important;
  }

  /* Toast */
  .portal-toast{
    position: fixed;
    left:50%;
    bottom: calc(var(--toast-btm) + env(safe-area-inset-bottom));
    transform: translateX(-50%);
    z-index: 99999;
    max-width: min(520px, calc(100vw - 24px));
    padding: 10px 12px;
    border-radius: 14px;
    border: 1px solid rgba(255,255,255,.16);
    background: rgba(9,14,24,.92);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    box-shadow:0 18px 60px rgba(0,0,0,.45);
    color: rgba(255,255,255,.92);
    white-space: nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
    opacity:0;
    pointer-events:none;
    transition: opacity .15s ease, transform .15s ease;
  }
  .portal-toast.show{ opacity:1; transform: translateX(-50%) translateY(-4px); }
  .portal-toast.ok{ border-color: rgba(70,224,183,.25); }
  .portal-toast.bad{ border-color: rgba(255,90,107,.25); }
/* =========================================================
   PB19 PORTAL — DİKEY ORTALAMA (sadece seçtiğin satırlar)
   ========================================================= */

/* 1) Alt input'ları en alta itmeye gerek yok; ortalama yapacağız */
body.pb19-portal #shaOut,
body.pb19-portal #hashInput{
  margin-top: 0 !important;   /* senin auto kuralını iptal eder */
}

/* 2) ÜST KART: Üret/Gönder satırı üst satır ile SHA arasında ortada */
body.pb19-portal section[aria-label="PB19 File/Make"] .portal-row2.is-center{
  margin-top: auto !important;
  margin-bottom: auto !important;
}

/* 3) ALT KART: Sorgula/Kopyala satırı üst satır ile hashInput arasında ortada */
body.pb19-portal section[aria-label="PB19 Query/Result"] .portal-row2.is-center{
  margin-top: auto !important;
  margin-bottom: auto !important;
}
