/* Panel glue on top of ds.css (the ZapData design system bundle). Tokens only. */
html,body{height:100%;background:var(--bg-app)}
body{margin:0;font:var(--type-body);color:var(--text-1)}
[hidden]{display:none!important}
.lucide{flex:none}
.pn-grow{flex:1;min-width:0}

/* Shell: brand, account block, drawer on phones */
.pn-brand{display:flex;align-items:center;gap:8px;text-decoration:none}
.pn-brand__tag{font:var(--type-meta-strong);color:var(--text-3);padding:2px 8px;border-radius:var(--radius-pill);background:var(--surface-2)}
.pn-account{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--radius-control);background:var(--surface)}
.pn-account__avatar{width:36px;height:36px;border-radius:50%;background:var(--brand-subtle);color:var(--brand-strong);display:grid;place-items:center;font:600 14px/1 var(--font-sans);flex:none}
.pn-account__name{font:var(--type-body-strong)}
.pn-account__sub{font:var(--type-meta);color:var(--text-3)}
.zd-sidebar__nav .zd-navitem{text-decoration:none}
.pn-menu{display:none}
.pn-scrim{position:fixed;inset:0;z-index:calc(var(--z-panel) - 1);background:rgba(0,0,0,.32)}
@media (max-width:1023px){
  .pn-menu{display:inline-flex}
  .zd-app>.zd-sidebar.is-open{display:flex}
}
.zd-topbar{justify-content:space-between}

/* Auth */
.pn-auth-form{display:flex;flex-direction:column;gap:var(--space-4);margin-top:var(--space-6)}

/* Server page */
.pn-secret{display:flex;flex-direction:column;gap:var(--space-4)}
.pn-secret .zd-input input,.pn-mono-input input{font-family:var(--font-mono);font-size:13px;color:var(--brand-strong)}
.pn-status{display:inline-flex;align-items:center;gap:8px;font:var(--type-body-strong);color:var(--success-fg)}
.pn-status::before{content:"";width:10px;height:10px;border-radius:50%;background:currentColor;box-shadow:0 0 0 4px var(--success-bg)}
.pn-status--off{color:var(--danger-fg)}
.pn-status--off::before{box-shadow:0 0 0 4px var(--danger-bg)}
.pn-count{font:var(--type-section-title);font-variant-numeric:tabular-nums}
.pn-count b{color:var(--brand-strong);font-weight:500}
.pn-count span{font:var(--type-body);color:var(--text-2)}
.pn-toolbar{display:flex;align-items:center;gap:12px;justify-content:space-between;flex-wrap:wrap}
.pn-num{font-variant-numeric:tabular-nums}
.pn-mono{font-family:var(--font-mono);font-size:12px;color:var(--text-3)}
.pn-strong{font:var(--type-body-strong)}
.pn-actions{display:flex;gap:var(--space-2);flex-wrap:wrap;justify-content:flex-end}
.pn-twocol{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4)}
@media (max-width:640px){.pn-twocol{grid-template-columns:minmax(0,1fr)}}
.pn-progress{display:flex;align-items:center;gap:10px;min-width:140px}
.pn-progress .zd-progress{flex:1}
.pn-loading{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-6);color:var(--text-2)}
.pn-link{border:0;background:none;padding:0;font:var(--type-body-strong);color:var(--text-1);cursor:pointer;text-align:left}
.pn-link:hover{color:var(--text-link-hover);text-decoration:underline}
.pn-link:focus-visible{outline:var(--focus-width) solid var(--focus-ring);outline-offset:2px;border-radius:4px}
.zd-input select{flex:1;min-width:0;height:100%;border:0;outline:0;background:none;font:var(--type-body);color:var(--text-1)}
.zd-input textarea{flex:1;min-width:0;border:0;outline:0;background:none;resize:vertical}
.zd-modal__body{display:flex;flex-direction:column;gap:var(--space-4)}

/* QR */
.pn-qr{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);text-align:center}
.pn-qr__img{width:264px;height:264px;max-width:100%;padding:8px;border-radius:12px;background:#fff;border:1px solid var(--border-subtle);display:grid;place-items:center;box-sizing:border-box}
.pn-qr__img img{width:100%;height:100%;image-rendering:pixelated}
.pn-qr__img .zd-spinner{color:var(--zd-gray-600)}
.pn-steps{margin:0;padding-left:20px;color:var(--text-2);text-align:left}

/* Contratar */
.pn-choices{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--space-3)}
.pn-choice{position:relative;display:flex;flex-direction:column;gap:4px;padding:var(--space-4);border:1px solid var(--border-subtle);border-radius:var(--radius-card);background:var(--surface);cursor:pointer}
.pn-choice:hover{border-color:var(--border-field)}
.pn-choice:has(input:checked){border-color:var(--brand);background:var(--brand-subtle)}
.pn-choice:has(input:focus-visible){outline:var(--focus-width) solid var(--focus-ring);outline-offset:2px}
.pn-choice input{position:absolute;opacity:0;pointer-events:none}
.pn-choice__title{font:var(--type-component-title)}
.pn-choice__price{font:var(--type-body);color:var(--text-2)}
.pn-total{font:var(--type-section-title);font-variant-numeric:tabular-nums}
.pn-section{display:flex;flex-direction:column;gap:var(--space-3)}
.pn-section h2{margin:0;font:var(--type-component-title)}
.pn-pix{display:flex;gap:var(--space-6);align-items:flex-start;flex-wrap:wrap}
.pn-pix textarea{font-family:var(--font-mono);font-size:12px;min-height:96px;padding:var(--space-2) 0}
.pn-pix .zd-input{height:auto}
.zd-col-actions .pn-actions{flex-wrap:nowrap}
.zd-table-empty{padding:var(--space-6);text-align:center;color:var(--text-2)}
