.ast-wrap{max-width:1180px;margin:24px auto;padding:22px;border:1px solid #e8dfd1;border-radius:18px;background:#fffdf8;color:#493321;font-family:inherit;box-sizing:border-box}.ast-wrap *{box-sizing:border-box}.ast-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:20px}.ast-head h2{margin:5px 0 6px;font-size:clamp(22px,3vw,30px);color:#55351f}.ast-head p{margin:0;color:#7b6857}.ast-kicker{font-size:11px;letter-spacing:.13em;color:#98734b;font-weight:700}.ast-status{background:#f5ead8;border-radius:30px;padding:8px 12px;font-size:12px;white-space:nowrap}.ast-grid{display:grid;grid-template-columns:minmax(230px,.8fr) minmax(280px,1fr);gap:24px;align-items:start}.ast-controls{padding:18px;border-radius:14px;background:#fbf5eb;border:1px solid #eee1cd}.ast-controls h3{margin:0 0 14px;font-size:18px}.ast-controls .ast-section-title{margin-top:22px;padding-top:15px;border-top:1px solid #e6d7c2}.ast-controls label{display:block;font-size:13px;font-weight:600;margin:0 0 12px;color:#65462f}.ast-controls input:not([type=range]),.ast-controls select{display:block;width:100%;margin-top:5px;padding:10px 11px;border:1px solid #d9c6ad;border-radius:8px;background:#fff;font:inherit;font-size:14px;color:#3e2b1d}.ast-controls input[type=range]{display:block;width:100%;margin-top:9px;accent-color:#a87943}.ast-controls output{float:right;font-weight:700;color:#8a5d2d}.ast-controls input:focus,.ast-controls select:focus{outline:2px solid #c69b63;outline-offset:1px}.ast-help,.ast-small-help{font-size:12px;line-height:1.5;color:#806b57}.ast-reset{border:1px solid #a87943;border-radius:8px;padding:9px 13px;background:#fff;color:#70451f;cursor:pointer;font-weight:600}.ast-preview-title{display:flex;justify-content:space-between;gap:10px;font-size:13px;margin:0 0 10px}.ast-preview-title span{color:#8a7967;font-size:12px}.ast-phone{width:min(100%,390px);margin:0 auto;border:8px solid #2f2b27;border-radius:28px;overflow:hidden;background:#fff;box-shadow:0 10px 28px #4a31151c}.ast-page{max-height:760px;overflow-y:auto;scroll-behavior:smooth;overscroll-behavior:contain}.ast-art{width:100%;position:relative;line-height:0;container-type:inline-size}.ast-art img{display:block;width:100%;height:auto}.ast-cover-title{position:absolute;display:flex;align-items:center;justify-content:center;text-align:center;padding:2px 6px;line-height:1.1;font-size:16px;font-family:Georgia,serif;color:#874a1c;font-weight:700;overflow-wrap:anywhere;text-shadow:0 0 2px #fff8}.ast-cover-button-wrap{position:absolute;display:flex;align-items:center;justify-content:center;line-height:1}.ast-cover-button-wrap a{font-size:clamp(9px,2.4vw,12px);font-weight:800;letter-spacing:.04em;color:#874a1c;text-decoration:none;line-height:1.1;text-align:center;max-width:100%;overflow-wrap:anywhere}.ast-details .ast-board{position:absolute;display:flex;align-items:center;justify-content:center;text-align:center;padding:2px 6px;color:#874a1c;font-size:12px;font-family:Arial,sans-serif;font-weight:700;line-height:1.2;overflow-wrap:anywhere}.ast-board-date{top:26.1%}.ast-board-place{top:36.3%}.ast-board-gift{top:46.7%}.ast-board-rsvp{top:56.9%}.ast-board-rsvp a{color:inherit;text-decoration:none;line-height:1.2}.ast-gifts-title{position:absolute;display:flex;align-items:center;justify-content:center;text-align:center;color:#874a1c;font:700 15px Georgia,serif;line-height:1.1}.ast-gift-ideas{position:absolute;display:flex;flex-direction:column;justify-content:flex-start;gap:14px;text-align:center;color:#874a1c;font:700 12px Arial,sans-serif;line-height:1.2;overflow-wrap:anywhere}.ast-gift-ideas>div:empty{display:none}.ast-preview-note{font-size:12px;line-height:1.5;color:#806b57;margin:12px auto 0;max-width:390px}.ast-notice{padding:16px;border:1px solid #ead8bd;border-radius:12px;background:#fff9ef;color:#5d422a}@media(max-width:760px){.ast-wrap{padding:14px;margin:12px auto}.ast-grid{grid-template-columns:1fr}.ast-head{display:block}.ast-status{display:inline-block;margin-top:10px}.ast-phone{width:min(100%,360px)}.ast-controls{order:2}.ast-preview{order:1}}
/* Editor 0.5.0: layout inspirado no painel de personalização lado a lado */
.ast-editor-v2{max-width:1240px;background:#fffaf7;border-color:#f0dfeb;color:#3d2940;padding:22px}
.ast-editor-v2 .ast-head h2{color:#702b53}.ast-editor-v2 .ast-kicker{color:#c6538c}.ast-editor-v2 .ast-status{background:#fff0f6;color:#b33175}
.ast-editor-layout{grid-template-columns:minmax(300px,1.05fr) minmax(390px,.95fr);gap:22px;align-items:stretch}
.ast-editor-layout .ast-preview{position:sticky;top:18px;align-self:start;min-width:0}
.ast-editor-v2 .ast-phone{width:min(100%,330px);border-color:#292832;border-radius:34px}
.ast-editor-v2 .ast-controls{padding:0;background:#fff;border:1px solid #f0dce8;border-radius:16px;overflow:hidden;min-width:0}
.ast-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-bottom:1px solid #f0dce8;background:#fff;position:sticky;top:0;z-index:2}
.ast-tab{appearance:none;border:0;border-bottom:3px solid transparent;background:transparent;color:#65465c;padding:15px 5px 12px;font-family:inherit;font-size:13px;font-weight:600;line-height:1.25;cursor:pointer;white-space:nowrap}
.ast-tab:hover{background:#fff8fb}.ast-tab.is-active{border-bottom-color:#e34f98;background:#fff2f8;color:#c42f7d}
.ast-tab-content{display:none;padding:20px 22px 8px}.ast-tab-content.is-active{display:block}.ast-tab-intro{font-size:12px;line-height:1.5;color:#7f6a7a;margin:0 0 18px}
.ast-editor-v2 .ast-controls label{color:#4e3650;font-size:13px;font-weight:600;margin-bottom:16px}
.ast-editor-v2 .ast-controls input:not([type=range]),.ast-editor-v2 .ast-controls select{border:1px solid #e5d2e2;border-radius:10px;padding:12px 13px;color:#392b3a;background:#fff;font-size:14px;min-height:44px}
.ast-editor-v2 .ast-controls input:focus,.ast-editor-v2 .ast-controls select:focus{outline:2px solid #e8a0c7;outline-offset:1px}
.ast-form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.ast-form-row label{min-width:0}.ast-form-row input{min-width:0}
.ast-editor-v2 .ast-section-title{border-top:1px solid #f0dce8;color:#70425f;padding-top:15px;margin-top:22px}
.ast-photo-info{border:1px dashed #e6c7da;background:#fff8fb;border-radius:12px;padding:16px;font-size:13px;line-height:1.6;color:#7b6075}
.ast-editor-v2 .ast-help{margin:8px 20px 20px;padding:12px;background:#fff8fb;border-radius:9px}
.ast-editor-v2 .ast-reset{border-color:#d86da5;color:#a52d6d;border-radius:10px}.ast-editor-v2 .ast-preview-note{max-width:330px}
.ast-board-time{font-variant-numeric:tabular-nums}
@media(max-width:900px){.ast-editor-layout{grid-template-columns:minmax(0,1fr)}.ast-editor-layout .ast-preview{position:static;order:1}.ast-editor-layout .ast-controls{order:2}.ast-editor-v2 .ast-phone{width:min(100%,340px)}}
@media(max-width:480px){.ast-editor-v2{padding:12px}.ast-tab{font-size:11px;padding:13px 2px 10px}.ast-tab-content{padding:16px 14px 6px}.ast-form-row{gap:8px}.ast-editor-v2 .ast-head h2{font-size:23px}.ast-status{white-space:normal}}

.ast-gratitude{position:absolute;display:flex;align-items:center;justify-content:center;text-align:center;padding:8px 10px;color:#874a1c;font:700 14px/1.45 Georgia,serif;white-space:pre-wrap;overflow-wrap:anywhere;text-shadow:0 1px 2px #fff;}
/* Fotos pessoais configuráveis por tema — v0.5.4 */
.ast-personal-photo{position:absolute;z-index:3;overflow:hidden;display:flex;align-items:center;justify-content:center;background:#fff8fb;box-shadow:0 1px 4px #6b40521c;line-height:0}
.ast-personal-photo img{display:block;width:100%;height:100%;object-fit:cover;max-width:none}
.ast-photo-shape-circle{border-radius:50%}
.ast-photo-shape-square{border-radius:5px}
.ast-photo-shape-rectangle{border-radius:8px}
.ast-photo-upload-label{display:block;padding:12px;border:1px solid #f0dce8;border-radius:10px;background:#fffafd;margin-bottom:12px!important}
.ast-photo-upload-label input[type=file]{display:block;width:100%;margin-top:9px;font-size:12px;color:#6f5369}

/* v0.5.5: botão acompanha tamanho de fonte definido no painel interno */
.ast-cover-button-wrap[style*="font-size"] a{font-size:inherit}

/* v0.6.6 — typography sizes are calibrated against the 470px admin canvas,
   then scaled proportionally when the public invitation is shown in a narrower phone preview. */
.ast-art .ast-cover-title,
.ast-art .ast-cover-button-wrap,
.ast-art .ast-details .ast-board,
.ast-art .ast-gifts-title,
.ast-art .ast-gift-ideas,
.ast-art .ast-gratitude{
  font-size:clamp(8px,calc(var(--ast-element-font-size, 12) * 100cqw / 470),60px) !important;
}
.ast-art .ast-cover-button-wrap a{font-size:inherit !important}

/* v0.6.8 — six-tab editor, configuration panel, location and countdown */
.aninha-admin-config-panel{width:100%;background:#fff;border:1px solid #d8dbe2;border-radius:12px;padding:18px;margin:8px 0 18px;box-sizing:border-box}
.aninha-admin-config-panel[hidden]{display:none!important}
.aninha-config-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.aninha-config-grid label{display:block;font-size:12px;font-weight:600;color:#384152}
.aninha-config-grid input{display:block;width:100%;margin-top:6px;min-height:38px}
.aninha-config-grid .aninha-upload-row{display:flex;gap:6px}
.aninha-config-grid .aninha-upload-row input{flex:1;min-width:0}
.aninha-config-wide{grid-column:1/-1}
.aninha-admin-page-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
.ast-location-button{position:absolute;display:flex;align-items:center;justify-content:center;text-decoration:none;box-sizing:border-box}
.ast-counter{position:relative}
.ast-counter-value{position:absolute;display:flex;align-items:center;justify-content:center;box-sizing:border-box}
@media(max-width:800px){.aninha-config-grid{grid-template-columns:1fr}.aninha-config-wide{grid-column:auto}.aninha-admin-page-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* v0.6.9 — editor interno alinhado à escala do convite público */
.aninha-config-grid{gap:22px 24px!important;align-items:start}
.aninha-config-grid>label{padding:10px 12px 14px;background:#fbfcfe;border:1px solid #e5e8ee;border-radius:9px;margin:0!important;min-width:0}
.aninha-config-grid>label input{box-sizing:border-box}
.aninha-config-link-row{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 24px;margin:8px 0 4px;padding:18px 0 4px;border-top:1px solid #e5e8ee}
.aninha-config-link-row label{display:block;min-width:0;padding:10px 12px 14px;background:#fbfcfe;border:1px solid #e5e8ee;border-radius:9px;font-size:12px;font-weight:600;color:#384152}
.aninha-config-link-row input{display:block;width:100%;max-width:100%;margin-top:7px;min-height:40px;box-sizing:border-box}
.aninha-config-grid>.aninha-config-wide{margin-top:8px!important;padding:10px 12px 14px}
.aninha-config-grid>button{justify-self:start;margin-top:4px}
.aninha-admin-preview-pages{width:min(100%,314px)!important;max-width:314px!important}
.aninha-admin-preview-page{container-type:inline-size}
.aninha-admin-preview-object{font-size:clamp(8px,calc(var(--ast-element-font-size,12) * 100cqw / 470),60px)!important}
.aninha-admin-preview-object .aninha-admin-preview-object-text{font-size:inherit;line-height:inherit}
@media(max-width:850px){.aninha-admin-preview-pages{width:min(100%,314px)!important;max-width:314px!important}}
@media(max-width:600px){.aninha-config-link-row{grid-template-columns:1fr;gap:14px}}

/* v0.7.3 — mapa dinâmico do endereço do evento dentro da arte */
.ast-location{overflow:hidden}
.ast-location-map{position:absolute;z-index:3;overflow:hidden;border:2px solid #fff;border-radius:8px;background:#e8edf0;box-shadow:0 2px 10px rgba(45,35,25,.22);box-sizing:border-box;line-height:0}
.ast-location-map[hidden]{display:none!important}
.ast-location-map iframe{display:block;width:100%;height:100%;border:0;pointer-events:none}
.ast-location-map-open{position:absolute;inset:0;display:block;z-index:2;background:transparent;cursor:pointer}
.ast-admin-preview-map{position:absolute;z-index:4;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;box-sizing:border-box;min-width:35px;min-height:30px;border:2px solid #fff;border-radius:7px;background:linear-gradient(135deg,#e8f0e8,#d8e4e8 48%,#f5eee0);box-shadow:0 2px 8px rgba(0,0,0,.2);color:#35546a;text-align:center;line-height:1.15;font-size:11px;padding:5px;cursor:move}
.ast-admin-preview-map-pin{font-size:19px;line-height:1}
.ast-admin-preview-map small{font-size:8px;font-weight:400}
@media(max-width:760px){.ast-location-map{border-width:1px}}


/* v0.9.0 — geometria e caixa idênticas entre o canvas administrativo e a prévia pública.
   O editor já usava border-box; o frontend usava content-box em alguns elementos,
   somando padding à largura/altura configuradas. */
.ast-art .ast-cover-title,
.ast-art .ast-cover-button-wrap,
.ast-art .ast-cover-button-wrap a,
.ast-art .ast-details .ast-board,
.ast-art .ast-gifts-title,
.ast-art .ast-gift-ideas,
.ast-art .ast-location-button,
.ast-art .ast-counter-value,
.ast-art .ast-gratitude,
.ast-art .ast-location-map,
.ast-art .ast-personal-photo {
  box-sizing: border-box;
}


/* v0.9.3 — tipografia sincronizada entre o canvas administrativo e o convite público.
   Os dois canvases usam a mesma referência proporcional (470 unidades) e a mesma
   escala baseada na largura interna da arte, sem depender da largura da janela. */
.ast-art,
.aninha-admin-preview-page {
  container-type: inline-size;
}
.ast-art .ast-cover-title,
.ast-art .ast-cover-button-wrap,
.ast-art .ast-cover-button-wrap a,
.ast-art .ast-details .ast-board,
.ast-art .ast-gifts-title,
.ast-art .ast-gift-ideas,
.ast-art .ast-location-button,
.ast-art .ast-counter-value,
.ast-art .ast-gratitude,
.aninha-admin-preview-page .aninha-admin-preview-object {
  font-size: clamp(8px, calc(var(--ast-element-font-size, 12) * 100cqw / 470), 60px) !important;
  line-height: inherit;
  box-sizing: border-box;
}
.ast-art .ast-cover-button-wrap a,
.aninha-admin-preview-page .aninha-admin-preview-object-text {
  font-size: inherit !important;
  line-height: inherit;
  font-family: inherit;
  font-weight: inherit;
  font-style: inherit;
  text-decoration: inherit;
  color: inherit;
}
.aninha-admin-preview-page .aninha-admin-preview-object {
  font-family: inherit;
  font-weight: 400;
  font-style: normal;
}
