/* ============================================================
   DendroGeo · css/ui-standard.css — TEK TASARIM SİSTEMİ (2026-09-26)
   Kullanıcı isteği: "bütün sayfaların temaları, yazı stilleri, yazı renkleri,
   başlık/alt başlık düzeni aynı olsun; bilimsel literatüre uygun; her sayfa
   kendi kafasına göre takılmasın; butonlar aynı olsun."

   NEDEN AYRI DOSYA + EN SON YÜKLENİR:
   11 SEO/bilgi sayfası (yontem, gizlilik, künye, …) kendi <style> bloğunda
   Arial gövde yazısı, farklı yeşil (#14532d), farklı buton/başlık ölçüleri
   tanımlıyordu; uygulama kabuğu ise Manrope+Fraunces+IBM Plex Mono kullanıyor.
   Aynı özgüllükte (specificity) KURALDA SON OLAN KAZANIR: bu dosya her
   sayfada style.css'ten VE sayfanın kendi <style> bloğundan SONRA geldiği
   için eleman-seviyesi standartlar sayfa yerel stillerini ezer; sınıf
   seviyesindeki yerel kurallar (.hero h1 gibi) ise bilinçli olarak üstte
   kalır. Yani tek dosya = bütün sayfaların tipografik anayasası.

   TİPOGRAFİK ÖLÇEK (bilimsel yayın düzeni):
     kicker  → IBM Plex Mono .72rem, BÜYÜK HARF, .16em aralık, amber  (etiket)
     h1      → Fraunces 600, clamp(1.9–2.6rem), green-dk               (sayfa başlığı)
     h2      → Fraunces 600 1.45rem, green-dk                          (bölüm)
     h3      → Manrope 800 1.02rem, ink                                (alt bölüm)
     h4      → Manrope 800 .9rem, ink
     gövde   → Manrope .95rem/1.7 ink
     sub     → Manrope .95rem mut, ≤70ch                               (alt başlık/özet)
     meta    → IBM Plex Mono .74rem mut                                (veri notu)
   RENKLER yalnız :root token'larından gelir (elle hex yazılmaz).
   ============================================================ */

/* ---- 1) TOKEN KAYNAĞI (0035): tüm tasarım tokenları TEK YERDE — style.css
   :root. Bu dosya eskiden aynı tokenları yeniden tanımlıyordu; en SON yüklendiği
   için style.css'teki WCAG düzeltmelerini sessizce eziyordu (--mut 4.41:1'e
   geri düşmüştü). Artık burada :root YOK; kurallar var(--token) kullanır.
   Kilit: test/landing-claims.test.mjs + test/critical-fixes.test.mjs. */


/* ---- 2) GÖVDE + TİPOGRAFİ ---- */
body.dg-page{background:var(--bg);color:var(--ink);font:15px/1.65 var(--f-ui)}
.dg-page h1{font-family:var(--f-disp);font-weight:600;font-size:clamp(1.9rem,4vw,2.6rem);
   line-height:1.1;letter-spacing:-.01em;color:var(--green-dk);margin:.2em 0 .3em}
.dg-page h2{font-family:var(--f-disp);font-weight:600;font-size:1.45rem;line-height:1.25;
   color:var(--green-dk);margin:34px 0 10px}
.dg-page h3{font-family:var(--f-ui);font-weight:800;font-size:1.02rem;color:var(--ink);margin:22px 0 8px}
.dg-page h4{font-family:var(--f-ui);font-weight:800;font-size:.9rem;color:var(--ink);margin:16px 0 6px}
.dg-page p{font-size:.95rem;line-height:1.7;color:var(--ink);max-width:78ch}
.dg-page li{font-size:.95rem;line-height:1.7;max-width:78ch}
.dg-page small{color:var(--mut);font-size:.78rem}
.dg-page code{font-family:var(--f-mono);font-size:.82em;background:var(--tint);
     color:var(--green-dk);padding:2px 6px;border-radius:6px}
.dg-page a{color:var(--green)}

.dg-kicker{font-family:var(--f-mono);font-size:.72rem;font-weight:600;
  letter-spacing:.16em;text-transform:uppercase;color:var(--amber-ink);margin:0 0 6px}
.dg-sub{color:var(--mut);font-size:.95rem;line-height:1.65;max-width:70ch;margin:0 0 18px}
.dg-meta{font-family:var(--f-mono);font-size:.74rem;color:var(--mut)}
.dg-page .lead{color:var(--mut);font-size:1.02rem;line-height:1.7;max-width:70ch}
.dg-page .tag{font-family:var(--f-mono);color:var(--amber-ink);font-weight:600;
     text-transform:uppercase;letter-spacing:.16em;font-size:.72rem}

/* uygulama görünümleri: başlık hiyerarşisi sayfaya göre değişmesin */
.view>h2,.view h2.disp{font-family:var(--f-disp);font-weight:600;font-size:1.45rem;
  color:var(--green-dk);margin:0 0 6px}
.dg-page .card>h2,.dg-page .card h2{font-size:1.12rem;margin:0 0 10px}
.dg-page .card>h3,.dg-page .card h3{font-size:.98rem;margin:18px 0 8px}

/* ---- 3) BUTON TEK AİLE ---- */
.dg-page .btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;
  background:var(--green);color:#fff;border:0;border-radius:10px;padding:12px 22px;
  font-family:var(--f-ui);font-weight:700;font-size:.88rem;letter-spacing:.02em;
  text-decoration:none;box-shadow:var(--sh);transition:.15s;cursor:pointer}
.dg-page .btn:hover{background:var(--green-dk);transform:translateY(-1px)}
.dg-page .btn:disabled{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}
.dg-page .btn.ghost{background:transparent;color:var(--green);border:1.5px solid var(--green);box-shadow:none}
.dg-page .btn.red{background:var(--red)} .btn.blue{background:var(--blue)} .btn.amber{background:var(--amber)}
.dg-page .btn.sm{padding:7px 14px;font-size:.78rem;border-radius:8px}
.btn.lg{padding:14px 26px;font-size:.95rem}
.btn.block{width:100%}
.dg-page a.btn{color:#fff}
.dg-page a.btn.ghost{color:var(--green)}
/* alt sayfaların .alt / .btn.alt eşdeğeri → ghost'a eşlenir */
.dg-page .btn.alt{background:#fff;color:var(--green);border:1.5px solid var(--line);box-shadow:none}

/* ---- 4) KART / PANEL / DURUM ---- */
.dg-page .card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);
      padding:22px;box-shadow:var(--sh);min-width:0}
.dg-fieldcard{display:flex;flex-direction:column;gap:12px}
.dg-page .lbl{font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--mut);font-weight:700}
.dg-page .val{font-family:var(--f-mono);font-size:1.5rem;color:var(--green);font-weight:600}
.dg-page .alert{border-radius:10px;padding:10px 14px;font-size:.85rem;line-height:1.55}
.dg-page .alert.info{background:var(--tint);color:var(--green-dk)}
.dg-page .alert.ok{background:var(--tint);color:var(--green-dk)}
.dg-page .alert.warn{background:var(--amber-tint);color:#7a4a12}
.dg-page .alert.err{background:#fbeae6;color:#8c2f1b}
.dg-page .badge{display:inline-block;padding:3px 10px;border-radius:20px;font-size:.66rem;
       font-weight:800;text-transform:uppercase;letter-spacing:.06em}

/* ---- 5) TABLO / FORM (bilimsel veri sunumu: mono hücreler, sabit başlık) ---- */
.dg-page table{width:100%;border-collapse:collapse;font-size:.82rem;background:var(--surface)}
.dg-page th{background:var(--tint);color:var(--green-dk);text-align:left;padding:10px;
   font-family:var(--f-ui);font-size:.68rem;font-weight:700;letter-spacing:.1em;
   text-transform:uppercase;white-space:nowrap}
.dg-page td{padding:9px 10px;border-bottom:1px solid var(--line);
   font-family:var(--f-mono);font-size:.78rem;color:var(--ink);white-space:nowrap}
.dg-page input,select{width:100%;background:#fff;border:1px solid var(--line);border-radius:10px;
  color:var(--ink);padding:11px 12px;font-family:var(--f-ui);font-size:.9rem}
.dg-page input:focus,select:focus{outline:2px solid var(--green);border-color:var(--green)}
.dg-page input::placeholder{color:#aeb8b1;font-style:italic;opacity:.75}

/* ---- 6) ORTAK KABUK: üst bar, alt bilgi, sarmalayıcı ---- */
.dg-page .wrap{max-width:1120px;margin:0 auto;padding:0 24px}
.dg-page .top{background:var(--surface);border-bottom:1px solid var(--line)}
.dg-page .brand{font-family:var(--f-disp);font-weight:700;font-size:1.2rem;color:var(--green-dk);text-decoration:none}
.dg-page .links a,.nav a{color:var(--green);text-decoration:none;font-size:.9rem;font-weight:600}
.dg-page .links a:hover,.nav a:hover{text-decoration:underline}
.dg-page footer{border-top:1px solid var(--line);color:var(--mut);font-size:.85rem}
.dg-page footer a{color:var(--green)}

.dg-profile-card{margin-bottom:22px}.dg-profile-heading{display:flex;gap:16px;align-items:center}.dg-profile-avatar{display:grid;place-items:center;width:64px;height:64px;flex-shrink:0;border-radius:50%;background:var(--green);color:white;font-size:1.4rem}.dg-profile-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:16px 0}.dg-profile-fields label{min-width:0;display:block}.dg-profile-fields input,.dg-profile-fields textarea,.dg-profile-fields select{display:block;width:100%;margin-top:6px}.dg-publication-dialog{max-width:740px;width:calc(100% - 24px);max-height:90dvh;overflow:auto;margin:auto;color:var(--ink);background:var(--bg)}.dg-publication-dialog::backdrop{background:rgba(0,0,0,.5)}.dg-publication-dialog h2{margin-bottom:12px}@media(max-width:600px){.dg-profile-fields{grid-template-columns:1fr}.dg-profile-heading{align-items:flex-start}.dg-profile-heading h2{overflow-wrap:anywhere}}

.dg-profile-fields textarea{background:var(--surface);border:1px solid var(--line);border-radius:10px;color:var(--ink);padding:11px 12px;font:inherit;resize:vertical}.dg-profile-fields textarea:focus{outline:2px solid var(--green);border-color:var(--green)}

/* Shared disclosure affordance. Native details retains keyboard and touch behaviour. */
#shell #main .view details>summary{
 display:flex;align-items:center;gap:10px;min-height:44px;
 list-style:none;cursor:pointer;font-family:var(--f-ui);color:var(--green);
 border-radius:8px;overflow-wrap:anywhere;
 transition:background-color .15s,color .15s;
}
#shell #main .view details>summary::-webkit-details-marker{display:none}
#shell #main .view details>summary::marker{content:""}
#shell #main .view details>summary::before{content:none}
#shell #main .view details>summary::after{
 content:"";display:block;flex:0 0 7px;width:7px;height:7px;margin-left:auto;
 border:0;border-right:2px solid currentColor;border-bottom:2px solid currentColor;
 background:none;order:99;transform:rotate(45deg);transition:transform .15s;
}
#shell #main .view details[open]>summary::after{transform:rotate(225deg)}
#shell #main .view details>summary:hover{background-color:var(--tint)}
#shell #main .view details>summary .dg-editor-menu-chevron,
#shell #main .view details>summary .dg-paint-chevron,
#parkAdminBox .dg-parkadmin-actions>summary>span[aria-hidden="true"]{display:none}
#shell :is(button,[role="button"],summary,a,input,select,textarea):focus-visible{
 outline:2px solid var(--green);outline-offset:3px;
}
#shell :is(button,[role="button"]):disabled{cursor:not-allowed;opacity:.45;transform:none}
#shell :is(.btn,.dg-png-btn){font-family:var(--f-ui);min-height:44px;line-height:1.4;white-space:normal}
/* Match section guides: a 20px visible mark inside a transparent touch target. */
#shell .dg-field-help{box-sizing:border-box;display:inline-grid;place-items:center;width:44px;height:44px;min-width:44px;min-height:44px;max-width:44px;max-height:44px;flex:0 0 44px;padding:0;border:0;border-radius:0;color:var(--green);background:radial-gradient(circle at center,var(--tint) 0 9px,var(--line) 9px 10px,transparent 10px);font:700 .75rem/1 var(--f-ui);letter-spacing:normal;text-transform:none;box-shadow:none}
#shell :is(.btn,.dg-png-btn):active{transform:translateY(0);box-shadow:none}
@media(prefers-reduced-motion:reduce){
 #shell #main .view details>summary,#shell #main .view details>summary::after{transition:none}
}

/* Admin storage controls share the existing button and typography tokens. */
#v-admin .admin-storage-section{margin-top:18px}
#v-admin .admin-storage-actions{display:flex;flex-wrap:wrap;align-items:stretch;gap:10px;margin-top:8px}
#v-admin .admin-storage-actions>.btn{margin:0;max-width:100%;min-width:0;overflow-wrap:anywhere}
@media(max-width:600px){
 #v-admin .admin-storage-actions{flex-direction:column}
 #v-admin .admin-storage-actions>.btn{width:100%}
}
