/* ==========================================================================
   devGhostUa · layout: header, footer, logo, dividers, command palette, page shells
   ========================================================================== */

/* ---- Logo ---- */
.dg-logo{display:inline-flex;align-items:center;gap:10px}
.dg-logo .dg-mascot{width:var(--size)}

/* ---- Header ---- */
.dg-header{position:sticky;top:0;z-index:40;background:rgba(16,28,48,.86);backdrop-filter:saturate(1.4) blur(10px);-webkit-backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid var(--dg-line)}
.dg-header__in{display:flex;align-items:center;justify-content:space-between;gap:var(--dg-s5);height:76px}
.dg-nav{display:flex;align-items:center;gap:26px}
.dg-nav__a{font-weight:700;font-size:16px;color:var(--dg-text-2);padding:6px 2px;transition:color var(--dg-t-fast),box-shadow var(--dg-t-fast)}
.dg-nav__a:hover,.dg-nav__a.is-active{color:var(--dg-text);box-shadow:inset 0 -3px 0 var(--dg-signal)}
.dg-nav__tag{font-family:var(--dg-mono);font-size:10px;font-weight:600;background:var(--dg-signal);color:var(--dg-ink);padding:2px 6px;border-radius:6px;vertical-align:2px}
.dg-header__actions{display:flex;align-items:center;gap:12px}
.dg-header__search{display:inline-flex;align-items:center;gap:8px;color:var(--dg-text-2);padding:8px;border-radius:12px;transition:background var(--dg-t-fast)}
.dg-header__search:hover{background:var(--dg-surface);color:var(--dg-text)}
.dg-header__search .dg-kbd{height:24px;font-size:11px;box-shadow:0 3px 0 #8C9AB3}
.dg-header__burger{color:var(--dg-text);padding:8px}
@media (max-width:960px){
  .dg-nav{position:fixed;inset:76px 0 auto 0;flex-direction:column;align-items:flex-start;gap:4px;padding:16px var(--dg-gutter) 24px;background:var(--dg-indigo);border-bottom:1px solid var(--dg-line);transform:translateY(-120%);transition:transform var(--dg-t) var(--dg-ease)}
  .dg-nav.is-open{transform:none}
  .dg-nav__a{font-size:20px;padding:10px 0}
  .dg-header__burger{display:inline-flex!important}
}

/* ---- Footer ---- */
.dg-footer{background:var(--dg-deep);border-top:1px solid var(--dg-line);padding:40px 0}
.dg-footer__in{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap}
.dg-footer__links a{font-weight:700;font-size:15px;color:var(--dg-text-2)}
.dg-footer__links a:hover{color:var(--dg-signal)}

/* ---- Dividers (partials/divider.html.twig) ---- */
.dg-divider{position:relative;overflow:hidden}
.dg-divider__band{display:block;width:100%}
.dg-divider--diagonal{height:90px}
.dg-divider__diag{position:absolute;inset:0;clip-path:polygon(0 0,100% 0,100% 36%,0 100%)}
.dg-divider__diag-line{position:absolute;inset:0;background:var(--dg-signal);clip-path:polygon(0 calc(100% - 4px),100% calc(36% - 4px),100% 36%,0 100%)}
.dg-divider--tape{padding:28px 0;margin:0 -40px}
.dg-divider__tape{transform:rotate(-2deg)}
.dg-divider__stripes{height:12px;background:repeating-linear-gradient(-45deg,var(--dg-signal) 0 22px,var(--dg-ink) 22px 44px)}
.dg-divider__tape-t{background:var(--dg-signal);color:var(--dg-ink);font-family:var(--dg-mono);font-weight:600;font-size:15px;letter-spacing:.12em;white-space:nowrap;padding:8px 0;border-block:3px solid var(--dg-ink);overflow:hidden}
.dg-divider__term{padding:36px var(--dg-gutter);color:var(--dg-ghost);white-space:nowrap;overflow:hidden}
.dg-divider--peek{height:120px}
.dg-divider__peek{position:absolute;inset:0 0 50% 0}
.dg-divider__ghost{position:absolute;left:50%;top:22px;margin-left:-40px;clip-path:inset(0 0 52% 0)}
.dg-divider__line{position:absolute;left:0;right:0;top:50%;height:3px;background:var(--dg-signal)}
.dg-divider__cut{display:flex;align-items:center;gap:12px;padding:32px var(--dg-gutter)}
.dg-divider__scissors{font-size:26px;color:var(--dg-signal);transform:rotate(-90deg)}
.dg-divider__dash{flex-grow:1;border-top:3px dashed var(--dg-muted)}
.dg-divider__num{display:flex;align-items:center;gap:18px;padding:32px var(--dg-gutter)}
.dg-divider__num .dg-outline-num{font-size:64px}
.dg-divider__rule{flex-grow:1;height:2px;background:var(--dg-line)}
.dg-divider__dots{display:block;width:100%;-webkit-mask-image:linear-gradient(90deg,transparent,#000 30%,#000 70%,transparent);mask-image:linear-gradient(90deg,transparent,#000 30%,#000 70%,transparent)}
.dg-divider__tag{display:flex;align-items:center;justify-content:center;gap:14px;padding:32px var(--dg-gutter)}
.dg-divider__fade{flex-grow:1;height:2px;background:linear-gradient(90deg,transparent,var(--dg-line))}
.dg-divider__fade--r{background:linear-gradient(90deg,var(--dg-line),transparent)}

/* ---- Command palette ---- */
.dg-palette{position:fixed;inset:0;z-index:100;display:flex;align-items:flex-start;justify-content:center;padding:12vh 16px 16px}
.dg-palette[hidden]{display:none}
.dg-palette__backdrop{position:absolute;inset:0;background:rgba(11,20,36,.72);backdrop-filter:blur(4px)}
.dg-palette__box{position:relative;width:min(100%,640px);background:var(--dg-surface);border:1px solid var(--dg-line);border-radius:22px;overflow:hidden;box-shadow:0 20px 0 -6px var(--dg-signal)}
.dg-palette__input{display:flex;align-items:center;gap:12px;padding:16px 18px;border-bottom:1px solid var(--dg-line)}
.dg-palette__input input{flex:1;background:transparent;border:0;font-size:19px;font-weight:700;color:var(--dg-text);outline:none}
.dg-palette__list{list-style:none;margin:0;padding:10px;max-height:55vh;overflow:auto}
.dg-palette__group{font-family:var(--dg-mono);font-size:11px;font-weight:600;color:var(--dg-muted);padding:8px 10px 4px}
.dg-palette__item{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:12px;font-weight:700;color:var(--dg-text-2);cursor:pointer}
.dg-palette__item[aria-selected="true"]{background:var(--dg-signal-tint);box-shadow:inset 3px 0 0 var(--dg-signal);color:var(--dg-text)}
.dg-palette__item mark{background:none;color:var(--dg-signal)}
.dg-palette__foot{display:flex;gap:16px;padding:10px 18px;border-top:1px solid var(--dg-line);font-size:11px;color:var(--dg-muted)}
.dg-palette__hint{margin-left:auto}

/* ---- Page shells ---- */
.dg-page-head{padding-block:clamp(48px,7vw,88px) clamp(24px,4vw,40px);border-bottom:1px solid var(--dg-line)}
.dg-crumbs{font-family:var(--dg-mono);font-size:13px;color:var(--dg-muted)}
.dg-crumbs a:hover{color:var(--dg-signal)}
.dg-crumbs__sep{color:var(--dg-signal);margin:0 6px}
.dg-article-grid{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:56px;align-items:start}
.dg-aside{position:sticky;top:100px;display:flex;flex-direction:column;gap:22px}
@media (max-width:960px){.dg-article-grid{grid-template-columns:minmax(0,1fr)}.dg-aside{display:none}}
.dg-docs-grid{display:grid;grid-template-columns:240px minmax(0,1fr) 220px;gap:40px;align-items:start}
@media (max-width:1100px){.dg-docs-grid{grid-template-columns:220px minmax(0,1fr)}.dg-docs-grid .dg-docs-toc{display:none}}
@media (max-width:860px){.dg-docs-grid{grid-template-columns:minmax(0,1fr)}.dg-docs-grid .dg-docs-nav{display:none}}
.dg-pagination{display:flex;gap:6px;align-items:center;justify-content:center}
.dg-pagination a,.dg-pagination span{min-width:38px;height:38px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;font-weight:800;font-size:15px;background:var(--dg-surface);color:var(--dg-muted);padding:0 10px}
.dg-pagination .is-current{background:var(--dg-signal);color:var(--dg-ink)}

/* ---- Floating toast (DG.toast) ---- */
.dg-toast--float{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:120;transition:opacity .4s,transform .4s}
.dg-toast--float.is-out{opacity:0;transform:translate(-50%,10px)}

@media (max-width:600px){.dg-header__actions .dg-btn{display:none}.dg-header__in{gap:12px}}
