/* Componentes compartilhados dos módulos de aplicativos. */
.app-card-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:16px}
.app-card-grid>.card{grid-column:span 6}
.app-section-title{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:16px}
.app-section-title h1,.app-section-title h2,.app-section-title h3,.app-section-title h4,.app-section-title h5{margin:0}
.preview-frame{width:100%;min-height:180px;border-radius:18px;overflow:hidden;border:1px solid #dce6f1;background:#f8fafc;display:grid;place-items:center}
.preview-frame img,.preview-frame video{max-width:100%;max-height:420px;object-fit:contain}
.action-toolbar{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}
.code-output,.json-box{width:100%;padding:15px;border-radius:14px;background:#0d2036;color:#d8eaff;font:12px/1.6 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;white-space:pre-wrap;word-break:break-word;overflow:auto}
@media(max-width:991.98px){.app-card-grid>.card{grid-column:span 12}}
@media(max-width:767.98px){.settings-grid{grid-template-columns:1fr}.action-toolbar{justify-content:stretch}.action-toolbar .btn{flex:1}}
