:root{
  --kitela-popup-green:#006b45;
  --kitela-popup-green-dark:#004d34;
  --kitela-popup-gold:#d99a00;
  --kitela-popup-ink:#18251f;
  --kitela-popup-muted:#65756d;
  --kitela-popup-border:#dce7e1;
  --kitela-popup-bg:#ffffff;
  --kitela-popup-danger:#b42318;
  --kitela-popup-warning:#b26a00;
  --kitela-popup-info:#1769aa;
}

body.app-popup-lock{overflow:hidden!important}

.app-popup-layer{
  position:fixed;
  inset:0;
  z-index:99999;
  pointer-events:none;
  font-family:inherit;
}

.app-popup-backdrop{
  position:absolute;
  inset:0;
  display:grid;
  place-items:center;
  padding:24px;
  background:rgba(10,25,18,.48);
  backdrop-filter:blur(4px);
  -webkit-backdrop-filter:blur(4px);
  opacity:0;
  pointer-events:none;
  transition:opacity .18s ease;
}

.app-popup-backdrop.is-open{opacity:1;pointer-events:auto}

.app-popup-dialog{
  width:min(100%,470px);
  max-height:min(82vh,680px);
  overflow:auto;
  border:1px solid rgba(255,255,255,.7);
  border-radius:22px;
  background:var(--kitela-popup-bg);
  box-shadow:0 30px 80px rgba(12,36,25,.25);
  transform:translateY(14px) scale(.985);
  opacity:.96;
  transition:transform .18s ease,opacity .18s ease;
}
.app-popup-backdrop.is-open .app-popup-dialog{transform:translateY(0) scale(1);opacity:1}

.app-popup-head{display:flex;gap:14px;align-items:flex-start;padding:24px 24px 12px}
.app-popup-icon{
  width:46px;height:46px;flex:0 0 46px;border-radius:14px;
  display:grid;place-items:center;background:#e9f6ef;color:var(--kitela-popup-green);
}
.app-popup-icon svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.app-popup-copy{min-width:0;flex:1}
.app-popup-eyebrow{display:block;margin-bottom:4px;font-size:11px;font-weight:800;letter-spacing:.11em;text-transform:uppercase;color:var(--kitela-popup-gold)}
.app-popup-title{margin:0;color:var(--kitela-popup-ink);font-size:21px;line-height:1.25;font-weight:800}
.app-popup-close{
  appearance:none;border:0;background:transparent;color:#738078;border-radius:10px;width:36px;height:36px;
  display:grid;place-items:center;cursor:pointer;transition:background .15s ease,color .15s ease;
}
.app-popup-close:hover{background:#f2f6f4;color:var(--kitela-popup-ink)}
.app-popup-close svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:2}
.app-popup-body{padding:4px 24px 20px;color:#53645b;font-size:15px;line-height:1.65;white-space:pre-line}
.app-popup-actions{display:flex;justify-content:flex-end;gap:10px;padding:16px 24px 22px;border-top:1px solid #eef2f0;background:#fbfcfc;border-radius:0 0 22px 22px}
.app-popup-btn{
  min-height:44px;padding:0 18px;border-radius:12px;border:1px solid #d5e0da;background:#fff;color:#203129;
  font:inherit;font-weight:750;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,background .12s ease;
}
.app-popup-btn:hover{transform:translateY(-1px);box-shadow:0 8px 20px rgba(18,58,40,.08)}
.app-popup-btn.primary{border-color:var(--kitela-popup-green);background:var(--kitela-popup-green);color:#fff}
.app-popup-btn.primary:hover{background:var(--kitela-popup-green-dark)}
.app-popup-btn.danger{border-color:var(--kitela-popup-danger);background:var(--kitela-popup-danger);color:#fff}
.app-popup-btn.warning{border-color:var(--kitela-popup-warning);background:var(--kitela-popup-warning);color:#fff}

.app-popup-dialog[data-type="error"] .app-popup-icon,
.app-popup-dialog[data-type="danger"] .app-popup-icon{background:#fdecea;color:var(--kitela-popup-danger)}
.app-popup-dialog[data-type="warning"] .app-popup-icon{background:#fff3d9;color:var(--kitela-popup-warning)}
.app-popup-dialog[data-type="info"] .app-popup-icon{background:#eaf3fb;color:var(--kitela-popup-info)}
.app-popup-dialog[data-type="success"] .app-popup-icon{background:#e9f6ef;color:var(--kitela-popup-green)}

.app-popup-toast-stack{
  position:absolute;top:88px;right:24px;width:min(410px,calc(100vw - 32px));
  display:flex;flex-direction:column;gap:12px;pointer-events:none;
}
.app-popup-toast{
  pointer-events:auto;display:grid;grid-template-columns:42px 1fr auto;gap:12px;align-items:start;
  padding:15px 14px;border:1px solid var(--kitela-popup-border);border-radius:16px;background:rgba(255,255,255,.98);
  box-shadow:0 16px 42px rgba(18,58,40,.15);transform:translateX(18px);opacity:0;
  transition:transform .2s ease,opacity .2s ease;border-color .2s ease;
}
.app-popup-toast.is-open{transform:translateX(0);opacity:1}
.app-popup-toast-icon{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:#e9f6ef;color:var(--kitela-popup-green)}
.app-popup-toast-icon svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.app-popup-toast-content{padding-top:1px;min-width:0}
.app-popup-toast-title{display:block;margin-bottom:3px;color:var(--kitela-popup-ink);font-size:14px;font-weight:800}
.app-popup-toast-message{display:block;color:var(--kitela-popup-muted);font-size:13px;line-height:1.45;overflow-wrap:anywhere}
.app-popup-toast-close{width:30px;height:30px;border:0;border-radius:9px;background:transparent;color:#7a8981;display:grid;place-items:center;cursor:pointer}
.app-popup-toast-close:hover{background:#f1f5f3;color:#26372f}
.app-popup-toast-close svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2}
.app-popup-toast[data-type="error"]{border-left:4px solid var(--kitela-popup-danger)}
.app-popup-toast[data-type="error"] .app-popup-toast-icon{background:#fdecea;color:var(--kitela-popup-danger)}
.app-popup-toast[data-type="warning"]{border-left:4px solid var(--kitela-popup-warning)}
.app-popup-toast[data-type="warning"] .app-popup-toast-icon{background:#fff3d9;color:var(--kitela-popup-warning)}
.app-popup-toast[data-type="info"]{border-left:4px solid var(--kitela-popup-info)}
.app-popup-toast[data-type="info"] .app-popup-toast-icon{background:#eaf3fb;color:var(--kitela-popup-info)}
.app-popup-toast[data-type="success"]{border-left:4px solid var(--kitela-popup-green)}

[data-app-popup-message][hidden]{display:none!important}

@media(max-width:700px){
  .app-popup-backdrop{padding:14px;align-items:end}
  .app-popup-dialog{width:100%;border-radius:20px 20px 14px 14px}
  .app-popup-head{padding:20px 18px 10px}
  .app-popup-body{padding:4px 18px 18px}
  .app-popup-actions{padding:14px 18px 18px;display:grid;grid-template-columns:1fr 1fr}
  .app-popup-actions .app-popup-btn:only-child{grid-column:1/-1}
  .app-popup-toast-stack{top:76px;right:12px;width:calc(100vw - 24px)}
}

@media(prefers-reduced-motion:reduce){
  .app-popup-backdrop,.app-popup-dialog,.app-popup-toast{transition:none!important}
}
