html,body{margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;line-height:1.6;color:#333;background:linear-gradient(135deg,#667eea,#764ba2);min-height:100vh}#root{min-height:100vh}.container{min-height:100vh;display:flex;flex-direction:column;padding:20px}.loading-container{align-items:center;justify-content:center;gap:20px}.center-container{align-items:center;justify-content:center}.spinner{border:4px solid rgba(255,255,255,.3);border-radius:50%;border-top-color:#fff;width:50px;height:50px;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-text{color:#fff;font-size:1.1rem}.header{text-align:center;padding:24px 0 30px}.header h1{color:#fff;font-size:2.6rem;margin-bottom:10px;text-shadow:2px 2px 4px rgba(0,0,0,.3);word-break:break-word}.subtitle{color:#ffffffeb;font-size:1.15rem}.error-banner{background:#fff0f0;color:#c0392b;border:1px solid #ffb3b3;border-radius:10px;padding:12px 16px;margin-bottom:20px}.error-card{background:#fff;border-radius:20px;padding:40px;max-width:480px;width:100%;text-align:center;box-shadow:0 10px 40px #00000040}.error-card h2{color:#c0392b;margin-bottom:12px}.error-card p{margin-bottom:24px}.home-content{max-width:620px;width:100%;margin:0 auto;background:#fffffff7;border-radius:20px;padding:40px;box-shadow:0 10px 40px #0003}.create-form{display:flex;flex-direction:column;gap:8px;margin-bottom:32px}.create-form label{font-weight:600;color:#444;margin-top:8px}.create-form input,.create-form textarea{padding:14px;border:2px solid #e0e0e0;border-radius:10px;font-size:16px;font-family:inherit;transition:border-color .3s ease;width:100%}.create-form textarea{resize:vertical;min-height:120px}.create-form input:focus,.create-form textarea:focus{outline:none;border-color:#667eea}.btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;padding:15px;border-radius:10px;font-size:18px;cursor:pointer;margin-top:12px;transition:transform .3s ease,box-shadow .3s ease}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 25px #667eea66}.btn-primary:disabled{opacity:.7;cursor:not-allowed}.features-list{background:#f8f9fa;border-radius:14px;padding:24px 28px}.features-list h2{color:#333;margin-bottom:12px;font-size:1.2rem}.features-list ol{padding-left:20px}.features-list li{padding:6px 0;color:#555}.message-container{flex:1;display:flex;flex-direction:column;align-items:center;max-width:620px;width:100%;margin:0 auto}.message-card{background:#fff;border-radius:20px;padding:40px;width:100%;margin-bottom:30px;box-shadow:0 10px 40px #00000026;font-family:Georgia,serif;line-height:1.8;font-size:1.1rem;word-break:break-word}.share-section{width:100%;text-align:center}.share-section h2{color:#fff;margin-bottom:20px;font-size:1.5rem}.share-buttons{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-bottom:30px}.btn{border:none;padding:12px 22px;border-radius:8px;font-size:15px;font-weight:600;cursor:pointer;transition:all .3s ease;text-decoration:none;display:inline-flex;align-items:center}.btn:hover{transform:translateY(-2px);box-shadow:0 5px 15px #00000040}.btn-whatsapp{background:#25d366;color:#fff}.btn-telegram{background:#08c;color:#fff}.btn-email{background:#ea4335;color:#fff}.btn-sms{background:#007aff;color:#fff}.btn-wechat{background:#07c160;color:#fff}.qr-section{background:#fff;padding:30px;border-radius:16px;box-shadow:0 8px 30px #0000001f}.qr-section h3{color:#333;margin-bottom:18px;font-size:1.2rem}.qr-code-container{display:flex;justify-content:center;margin-bottom:14px}.qr-hint{color:#777;font-size:.9rem;margin-bottom:18px}.link-row{display:flex;gap:10px;align-items:center}.link-input{flex:1;padding:12px;border:2px solid #e0e0e0;border-radius:8px;font-size:14px;color:#555;min-width:0}.btn-copy{background:#667eea;color:#fff;white-space:nowrap}.footer{text-align:center;padding:24px 0 10px;color:#ffffffd9;margin-top:auto;font-size:.95rem}@media(max-width:768px){.container{padding:10px}.header h1{font-size:2rem}.home-content,.message-card,.error-card{padding:24px}.share-buttons{flex-direction:column}.btn{width:100%;justify-content:center}.link-row{flex-direction:column}.btn-copy{width:100%}}.qr-only-section{text-align:center;background:#fff;padding:40px;border-radius:20px;box-shadow:0 10px 40px #00000026;margin-bottom:30px}.qr-only-section .qr-code-container{display:flex;justify-content:center;margin-bottom:20px}.qr-hint{color:#777;font-size:1rem;margin-bottom:16px}.qr-url{font-family:monospace;font-size:.85rem;color:#666;word-break:break-all;background:#f5f5f5;padding:12px;border-radius:8px}:root{--admin-bg: #f4f6fb;--admin-surface: #ffffff;--admin-border: #e3e7ef;--admin-text: #1c2333;--admin-text-muted: #6b7280;--admin-primary: #4f46e5;--admin-primary-dark: #4338ca;--admin-primary-soft: #eef0fe;--admin-danger: #dc2626;--admin-danger-soft: #fdecec;--admin-success: #16a34a;--admin-success-soft: #eafaf0;--admin-warning: #b45309;--admin-warning-soft: #fdf3e3;--admin-radius: 12px;--admin-shadow: 0 1px 2px rgba(16, 24, 40, .04), 0 1px 3px rgba(16, 24, 40, .06)}.admin-shell{min-height:100vh;background:var(--admin-bg);color:var(--admin-text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif}.admin-topbar{background:var(--admin-surface);border-bottom:1px solid var(--admin-border);position:sticky;top:0;z-index:20}.admin-topbar-inner{max-width:1180px;margin:0 auto;padding:0 20px;display:flex;align-items:center;justify-content:space-between;height:60px}.admin-brand{font-weight:700;font-size:1.05rem;color:var(--admin-text);display:flex;align-items:center;gap:8px;text-decoration:none}.admin-nav{display:flex;gap:4px}.admin-nav a{color:var(--admin-text-muted);text-decoration:none;padding:8px 14px;border-radius:8px;font-size:.92rem;font-weight:500;white-space:nowrap;transition:background .15s ease,color .15s ease}.admin-nav a:hover,.admin-nav a.active{background:var(--admin-primary-soft);color:var(--admin-primary-dark)}.admin-user-menu{display:flex;align-items:center;gap:12px}.admin-user-name{font-size:.88rem;color:var(--admin-text-muted)}.admin-hamburger{display:none;background:none;border:1px solid var(--admin-border);border-radius:8px;width:38px;height:38px;cursor:pointer;font-size:1.1rem}.admin-mobile-nav{display:none;flex-direction:column;padding:8px 20px 16px;border-top:1px solid var(--admin-border)}.admin-mobile-nav a{padding:12px 4px;color:var(--admin-text);text-decoration:none;border-bottom:1px solid var(--admin-border);font-weight:500}.admin-mobile-nav a.active{color:var(--admin-primary-dark)}.admin-main{max-width:1180px;margin:0 auto;padding:28px 20px 60px}.admin-page-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:20px}.admin-page-header h1{font-size:1.5rem;font-weight:700}.admin-page-header p{color:var(--admin-text-muted);font-size:.92rem;margin-top:2px}.admin-btn{display:inline-flex;align-items:center;gap:6px;padding:9px 16px;border-radius:9px;border:1px solid transparent;font-size:.9rem;font-weight:600;cursor:pointer;transition:background .15s ease,box-shadow .15s ease,opacity .15s ease;text-decoration:none}.admin-btn-primary{background:var(--admin-primary);color:#fff}.admin-btn-primary:hover{background:var(--admin-primary-dark)}.admin-btn-primary:disabled{opacity:.6;cursor:not-allowed}.admin-btn-secondary{background:var(--admin-surface);color:var(--admin-text);border-color:var(--admin-border)}.admin-btn-secondary:hover{background:#f8f9fc}.admin-btn-danger{background:var(--admin-danger-soft);color:var(--admin-danger)}.admin-btn-danger:hover{background:#fbdada}.admin-btn-sm{padding:6px 12px;font-size:.82rem}.admin-card{background:var(--admin-surface);border:1px solid var(--admin-border);border-radius:var(--admin-radius);box-shadow:var(--admin-shadow);padding:22px;margin-bottom:22px}.admin-card h2{font-size:1.05rem;font-weight:700;margin-bottom:4px}.admin-card-subtitle{color:var(--admin-text-muted);font-size:.85rem;margin-bottom:16px}.admin-table-wrap{overflow-x:auto;border:1px solid var(--admin-border);border-radius:var(--admin-radius);background:var(--admin-surface)}.admin-table{width:100%;border-collapse:collapse;font-size:.88rem;min-width:560px}.admin-table th{text-align:left;padding:12px 16px;color:var(--admin-text-muted);font-weight:600;font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--admin-border);background:#fafbfd}.admin-table td{padding:14px 16px;border-bottom:1px solid var(--admin-border);vertical-align:middle}.admin-table tr:last-child td{border-bottom:none}.admin-table tr.clickable{cursor:pointer}.admin-table tr.clickable:hover{background:#fafbff}.admin-empty{padding:40px 20px;text-align:center;color:var(--admin-text-muted);font-size:.92rem}.admin-badge{display:inline-flex;align-items:center;padding:3px 10px;border-radius:999px;font-size:.76rem;font-weight:700;text-transform:capitalize}.admin-badge-active{background:var(--admin-success-soft);color:var(--admin-success)}.admin-badge-pending{background:var(--admin-warning-soft);color:var(--admin-warning)}.admin-badge-expired,.admin-badge-historical{background:#eef0f4;color:var(--admin-text-muted)}.admin-form{display:flex;flex-direction:column;gap:16px}.admin-form-row{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.admin-field{display:flex;flex-direction:column;gap:6px}.admin-field label{font-size:.85rem;font-weight:600;color:var(--admin-text)}.admin-field .admin-hint{font-size:.78rem;color:var(--admin-text-muted);font-weight:400}.admin-field input,.admin-field select,.admin-field textarea{padding:10px 12px;border:1.5px solid var(--admin-border);border-radius:9px;font-size:.92rem;font-family:inherit;background:#fff;color:var(--admin-text)}.admin-field input:focus,.admin-field select:focus,.admin-field textarea:focus{outline:none;border-color:var(--admin-primary)}.admin-field input:disabled,.admin-field select:disabled{background:#f4f5f8;color:var(--admin-text-muted)}.admin-input-group{display:flex;gap:8px}.admin-input-group .admin-prefix{display:flex;align-items:center;padding:0 12px;border:1.5px solid var(--admin-border);border-radius:9px;background:#f8f9fc;color:var(--admin-text-muted);font-size:.88rem;white-space:nowrap}.admin-form-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:4px}.admin-alert{padding:12px 14px;border-radius:9px;font-size:.88rem;margin-bottom:4px}.admin-alert-error{background:var(--admin-danger-soft);color:var(--admin-danger)}.admin-alert-success{background:var(--admin-success-soft);color:var(--admin-success)}.admin-alert-info{background:var(--admin-primary-soft);color:var(--admin-primary-dark)}.admin-code{font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;background:#f4f5f8;padding:4px 8px;border-radius:6px;font-size:.85rem;letter-spacing:.05em}.admin-steps{display:flex;gap:8px;margin-bottom:20px}.admin-step{flex:1;padding:10px 14px;border-radius:9px;background:#eef0f4;color:var(--admin-text-muted);font-size:.82rem;font-weight:600;text-align:center}.admin-step.active{background:var(--admin-primary);color:#fff}.admin-step.done{background:var(--admin-success-soft);color:var(--admin-success)}.canvas-lib-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:20px}.canvas-lib-card{background:var(--admin-surface);border:1px solid var(--admin-border);border-radius:var(--admin-radius);overflow:hidden;box-shadow:var(--admin-shadow);cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}.canvas-lib-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px #1018281f}.canvas-lib-preview{height:200px;background-size:cover;background-position:center;display:block;overflow:hidden;position:relative;border-radius:var(--admin-radius)}.canvas-lib-card .canvas-lib-preview{border-radius:0}.canvas-lib-preview-procedural span{color:#ffffffbf;font-size:.76rem;text-align:center;padding:0 16px}.canvas-lib-card-body{padding:14px 16px}.canvas-lib-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.canvas-lib-card-header h2{font-size:.98rem;margin-bottom:0}.admin-badge-photo{background:var(--admin-primary-soft);color:var(--admin-primary-dark);font-size:.68rem;text-transform:uppercase;letter-spacing:.04em}.canvas-lib-card-body p{font-size:.82rem;color:var(--admin-text-muted);margin-top:8px;line-height:1.4}.canvas-lib-card-actions{display:flex;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid var(--admin-border)}.admin-email-status{margin-top:8px;padding:10px 12px;border-radius:8px;font-size:.8rem;line-height:1.5;border:1px solid}.admin-email-status-sent{background:var(--admin-success-soft);color:var(--admin-success);border-color:var(--admin-success)}.admin-email-status-failed,.admin-email-status-no_email{background:var(--admin-danger-soft);color:var(--admin-danger);border-color:var(--admin-danger)}.admin-email-status-not_sent,.admin-email-status-unknown{background:var(--admin-warning-soft);color:var(--admin-warning);border-color:var(--admin-warning)}.admin-email-status strong{font-weight:600}.admin-detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px 28px}.admin-detail-item .admin-detail-label{font-size:.76rem;text-transform:uppercase;letter-spacing:.04em;color:var(--admin-text-muted);margin-bottom:3px}.admin-detail-item .admin-detail-value{font-size:.95rem;font-weight:500}.admin-back-link{display:inline-flex;align-items:center;gap:7px;color:var(--admin-text);text-decoration:none;font-size:.86rem;font-weight:600;margin-bottom:18px;padding:8px 14px 8px 10px;border-radius:999px;border:1px solid var(--admin-border);background:var(--admin-surface);box-shadow:var(--admin-shadow);cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease}.admin-back-link:before{content:"←";font-size:.95rem}.admin-back-link:hover{color:var(--admin-primary-dark);border-color:var(--admin-primary);background:var(--admin-primary-soft)}.admin-modal-backdrop{position:fixed;inset:0;background:#0f121e80;display:flex;align-items:center;justify-content:center;z-index:100;padding:20px}.admin-modal-card{background:var(--admin-surface);border-radius:var(--admin-radius);padding:26px;max-width:380px;width:100%;box-shadow:0 24px 60px #00000059}.admin-modal-card h2{font-size:1.05rem;margin-bottom:8px}.admin-modal-card p{color:var(--admin-text-muted);font-size:.9rem;line-height:1.5;margin-bottom:8px}.admin-login-shell{position:relative;min-height:100vh;display:flex;align-items:center;justify-content:center;background:#fffdf9;padding:20px;overflow:hidden}.login-floral-bg{position:absolute;inset:0;width:100%;height:100%;z-index:0}.admin-login-card{position:relative;z-index:1;background:#ffffffeb;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);border-radius:18px;padding:40px 36px;width:100%;max-width:380px;text-align:center;box-shadow:0 20px 60px #503c322e;border:1px solid rgba(0,0,0,.04)}.admin-login-card h1{font-size:1.5rem;font-weight:700;margin-bottom:4px;color:#2c241f}.admin-login-card p{color:var(--admin-text-muted);font-size:.88rem;margin-bottom:24px}.admin-login-card .admin-form{text-align:left}.admin-login-btn{width:100%;margin-top:6px;padding:13px;border-radius:10px;background:#fff;color:#111;border:1.5px solid #111111;font-size:1rem;font-weight:700;text-align:center;cursor:pointer;transition:background .15s ease,color .15s ease}.admin-login-btn:hover{background:#111;color:#fff}.admin-login-btn:disabled{opacity:.6;cursor:not-allowed}@media(max-width:760px){.admin-form-row,.admin-detail-grid{grid-template-columns:1fr}}@media(max-width:700px){.admin-nav{display:none}.admin-hamburger{display:block}.admin-mobile-nav.open{display:flex}}@media(max-width:640px){.admin-main{padding:20px 14px 50px}.admin-card{padding:16px}.admin-table{min-width:480px}}:root{--pub-radius: 16px}.pub-canvas-shell{position:fixed;inset:0;overflow:hidden;background:#0a0f1a}.pub-canvas-shell .canvas-tooltip{position:absolute;transform:translate(-50%,-120%);max-width:240px;padding:12px 14px;border-radius:12px;background:#0f121eeb;color:#fff;box-shadow:0 10px 30px #00000059;pointer-events:auto;animation:pub-tooltip-in .15s ease-out;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;z-index:30}.pub-canvas-shell.theme-day .canvas-tooltip{background:#fffffff5;color:#14332f}@keyframes pub-tooltip-in{0%{opacity:0;transform:translate(-50%,-110%) scale(.95)}to{opacity:1;transform:translate(-50%,-120%) scale(1)}}.canvas-tooltip-name{font-weight:700;font-size:.86rem;margin-bottom:3px}.canvas-tooltip-message{font-size:.82rem;line-height:1.4;word-break:break-word}.canvas-tooltip-close{position:absolute;top:4px;right:6px;background:none;border:none;color:inherit;opacity:.6;font-size:1rem;cursor:pointer;line-height:1}.canvas-tooltip-close:hover{opacity:1}.pub-qr-card{position:absolute;right:18px;bottom:18px;display:flex;flex-direction:column;align-items:center;gap:8px;padding:14px;border-radius:var(--pub-radius);background:#fffffff7;box-shadow:0 12px 34px #00000059;z-index:20}.pub-qr-card-touch{cursor:pointer}.pub-canvas-shell.theme-night .pub-qr-card{background:#0a0e18e6}.pub-qr-card .pub-qr-hint{font-size:.72rem;color:#6b7280;text-align:center;max-width:130px}.pub-canvas-shell.theme-night .pub-qr-card .pub-qr-hint{color:#a9b0c0}.pub-qr-toggle{border:none;background:#0000000f;color:inherit;font-size:.72rem;font-weight:600;padding:5px 10px;border-radius:999px;cursor:pointer}.pub-canvas-shell.theme-night .pub-qr-toggle{background:#ffffff1a;color:#e9ecf5}.pub-brand-mark{position:absolute;left:16px;bottom:14px;font-size:.72rem;color:#ffffff8c;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;z-index:20;letter-spacing:.02em}.pub-canvas-shell.theme-day .pub-brand-mark{color:#0a28238c}.pub-center-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:linear-gradient(135deg,#101a2e,#1b2b4a)}.pub-center-shell.theme-day{background:linear-gradient(135deg,#1f7a76,#2e8f8a)}.pub-card{width:100%;max-width:420px;background:#fff;border-radius:20px;padding:36px 32px;box-shadow:0 24px 70px #00000059;text-align:center}.pub-card .pub-icon{font-size:2.4rem;margin-bottom:14px}.pub-card h1{font-size:1.3rem;color:#14213d;margin-bottom:8px}.pub-card p{color:#667085;font-size:.92rem;line-height:1.5;margin-bottom:20px}.pub-code-input{width:100%;text-align:center;font-family:SFMono-Regular,Consolas,Menlo,monospace;font-size:1.3rem;letter-spacing:.18em;padding:14px;border:2px solid #e3e7ef;border-radius:12px;text-transform:uppercase;margin-bottom:14px}.pub-code-input:focus{outline:none;border-color:#4f46e5}.pub-btn{width:100%;padding:14px;border:none;border-radius:12px;background:#4f46e5;color:#fff;font-size:1rem;font-weight:700;cursor:pointer;transition:background .15s ease,opacity .15s ease}.pub-btn:hover{background:#4338ca}.pub-btn:disabled{opacity:.6;cursor:not-allowed}.pub-alert{background:#fdecec;color:#b3261e;border-radius:10px;padding:10px 12px;font-size:.85rem;margin-bottom:14px}.pub-success{background:#eafaf0;color:#16a34a;border-radius:10px;padding:10px 12px;font-size:.85rem;margin-bottom:14px}.pub-submit-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:linear-gradient(160deg,#0f1420,#1c2440 60%,#232c4d)}.pub-submit-card{width:100%;max-width:420px;background:#fff;border-radius:22px;padding:32px 28px;box-shadow:0 24px 70px #0006}.pub-submit-card h1{font-size:1.35rem;color:#14213d;margin-bottom:4px}.pub-submit-card .pub-subtitle{color:#667085;font-size:.9rem;margin-bottom:22px}.pub-field{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}.pub-field label{font-size:.84rem;font-weight:700;color:#14213d}.pub-field input,.pub-field textarea{padding:12px 14px;border-radius:12px;border:1.5px solid #e3e7ef;font-size:.95rem;font-family:inherit}.pub-field textarea{min-height:110px;resize:vertical}.pub-field input:focus,.pub-field textarea:focus{outline:none;border-color:#4f46e5}.pub-char-count{align-self:flex-end;font-size:.72rem;color:#9aa2b1}@media(max-width:480px){.pub-card,.pub-submit-card{padding:28px 22px;border-radius:18px}.pub-qr-card{right:10px;bottom:10px;padding:10px}}
