*{box-sizing:border-box;margin:0;padding:0}:root{--gold:#b8964a;--gold-light:#d4b06a;--gold-pale:#f5edd8;--green-dark:#1a2e1a;--green-mid:#2d4a2d;--green-light:#4a7a4a;--cream:#faf6ef;--text-dark:#1a1a1a;--text-muted:#5a5a4a}body{background:var(--green-dark);color:var(--text-dark);min-height:100vh;margin:0;font-family:Nunito,sans-serif}.page{background:var(--cream);max-width:480px;min-height:100vh;margin:0 auto;position:relative;overflow:hidden}.nama-screen{background:var(--green-dark);text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:3rem 2rem;display:flex;position:relative}.nama-screen:before{content:"";background:radial-gradient(at 30% 30%,#b8964a12 0%,#0000 60%),radial-gradient(at 70% 70%,#b8964a12 0%,#0000 60%);position:absolute;inset:0}.corner{border-color:var(--gold);opacity:.6;border-style:solid;width:30px;height:30px;position:absolute}.corner-tl{border-width:2px 0 0 2px;top:20px;left:20px}.corner-tr{border-width:2px 2px 0 0;top:20px;right:20px}.corner-bl{border-width:0 0 2px 2px;bottom:20px;left:20px}.corner-br{border-width:0 2px 2px 0;bottom:20px;right:20px}.nama-bismillah{color:var(--gold-light);margin-bottom:1.2rem;font-family:Amiri,serif;font-size:1.6rem;position:relative}.divider{align-items:center;gap:12px;margin:.7rem 0;display:flex}.divider-line{background:linear-gradient(to right, transparent, var(--gold), transparent);flex:1;height:1px}.divider-diamond{background:var(--gold);flex-shrink:0;width:6px;height:6px;transform:rotate(45deg)}.nama-intro{position:relative}.nama-label-top{letter-spacing:4px;text-transform:uppercase;color:var(--gold);margin-bottom:.3rem;font-size:10px;font-weight:600}.nama-title{color:#fff;margin-bottom:.2rem;font-family:Amiri,serif;font-size:1.8rem}.nama-sub{color:#fff6;letter-spacing:1px;margin-bottom:1.5rem;font-size:11px}.input-wrap{width:100%;max-width:300px;margin:0 auto .5rem;position:relative}.input-nama{color:#fff;text-align:center;letter-spacing:.5px;background:#ffffff0f;border:1px solid #b8964a66;border-radius:4px;outline:none;width:100%;padding:12px 16px;font-family:Nunito,sans-serif;font-size:15px;transition:border-color .3s}.input-nama::placeholder{color:#ffffff40;letter-spacing:1px;font-size:13px}.input-nama:focus{border-color:var(--gold)}.err-msg{color:#e07070;letter-spacing:1px;min-height:16px;margin-bottom:.8rem;font-size:11px}.btn-lanjut{border:1px solid var(--gold);color:var(--gold-light);letter-spacing:3px;text-transform:uppercase;cursor:pointer;background:0 0;padding:11px 28px;font-family:Nunito,sans-serif;font-size:11px;transition:all .3s;position:relative}.btn-lanjut:hover{background:#b8964a26}.cover{background:var(--green-dark);text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:3rem 2rem;display:flex;position:relative}.cover:before{content:"";background:radial-gradient(at 20% 20%,#b8964a14 0%,#0000 60%),radial-gradient(at 80% 80%,#b8964a14 0%,#0000 60%);position:absolute;inset:0}.ornament-top,.ornament-bottom{opacity:.25;width:200px;position:absolute}.ornament-top{top:0;left:50%;transform:translate(-50%)}.ornament-bottom{bottom:0;left:50%;transform:translate(-50%)rotate(180deg)}.cover-eyebrow{letter-spacing:5px;color:var(--gold-light);text-transform:uppercase;margin-bottom:.5rem;font-size:10px;font-weight:600;position:relative}.cover-bismillah{color:var(--gold-light);margin-bottom:1rem;font-family:Amiri,serif;font-size:1.8rem;line-height:1.6;position:relative}.groom-name,.bride-name{color:#fff;font-family:Amiri,serif;font-size:2.2rem;line-height:1.2;position:relative}.and-text{color:var(--gold-light);margin:.2rem 0;font-family:Amiri,serif;font-size:1.3rem;position:relative}.kepada-wrap{margin:1rem 0 .5rem;position:relative}.kepada-kecil{color:#fff6;letter-spacing:2px;text-transform:uppercase;margin-bottom:5px;font-size:10px}.kepada-nama{color:var(--gold-light);font-family:Amiri,serif;font-size:1.3rem}.btn-open{border:1px solid var(--gold);color:var(--gold-light);letter-spacing:3px;text-transform:uppercase;cursor:pointer;background:0 0;margin-top:1.3rem;padding:11px 28px;font-family:Nunito,sans-serif;font-size:11px;transition:all .3s;position:relative}.btn-open:hover{background:#b8964a26}section{padding:2.5rem 1.8rem;position:relative}section+section{border-top:1px solid #b8964a26}.section-label{letter-spacing:4px;text-transform:uppercase;color:var(--gold);text-align:center;margin-bottom:.4rem;font-size:10px;font-weight:600}.section-title{color:var(--green-dark);text-align:center;margin-bottom:1.2rem;font-family:Amiri,serif;font-size:1.5rem}.opening-section{background:var(--cream);text-align:center}.arabic-quote{color:var(--green-mid);direction:rtl;margin:.8rem 0;font-family:Amiri,serif;font-size:1.3rem;line-height:2}.opening-body{color:var(--text-muted);margin:1rem 0;font-size:13px;line-height:1.9}.couple-block{text-align:left;background:#fff;border:1px solid #b8964a33;border-radius:12px;margin:.8rem 0;padding:1.2rem 1.4rem}.couple-role{letter-spacing:3px;text-transform:uppercase;color:var(--gold);margin-bottom:.4rem;font-size:9px;font-weight:700}.couple-name{color:var(--green-dark);margin-bottom:.3rem;font-family:Amiri,serif;font-size:1.5rem}.couple-parents{color:var(--text-muted);font-size:12px;line-height:1.7}.alm{color:var(--green-light);font-size:11px;font-style:italic}.amp-wrap{text-align:center;padding:.3rem 0}.amp-big{color:var(--gold);font-family:Amiri,serif;font-size:2.5rem}.event-section{background:var(--green-dark);text-align:center}.event-section .section-title{color:#fff}.event-section .section-label{color:var(--gold-light)}.event-intro{color:#ffffff8c;margin-bottom:1.5rem;font-size:13px;line-height:1.9}.event-card{background:#ffffff0f;border:1px solid #b8964a40;border-radius:12px;margin:.8rem 0;padding:1.5rem}.event-type{letter-spacing:3px;text-transform:uppercase;color:var(--gold-light);margin-bottom:1rem;font-size:9px;font-weight:700}.event-day{color:#fff9;font-family:Amiri,serif;font-size:1.1rem}.event-date-big{color:#fff;font-family:Amiri,serif;font-size:3.2rem;line-height:1}.event-month{letter-spacing:3px;text-transform:uppercase;color:var(--gold-light);margin:.3rem 0 1rem;font-size:11px}.event-row{color:#ffffffa6;justify-content:center;align-items:center;gap:8px;margin:.4rem 0;font-size:13px;display:flex}.event-row svg{opacity:.7;flex-shrink:0}.tausyiah-card{text-align:left;background:#b8964a14;border:1px solid #b8964a33;border-radius:12px;margin-top:1rem;padding:1.2rem 1.4rem}.tausyiah-label{letter-spacing:3px;text-transform:uppercase;color:var(--gold-light);margin-bottom:.7rem;font-size:9px;font-weight:700}.ustadz-name{color:#fff;margin-bottom:.3rem;font-family:Amiri,serif;font-size:1.2rem}.ustadz-tema{color:#ffffff8c;font-size:12px;font-style:italic;line-height:1.6}.ustadz-tema span{color:var(--gold-light);font-style:normal}.btn-maps{border:1px solid var(--gold);color:var(--gold-light);letter-spacing:2px;text-transform:uppercase;cursor:pointer;background:0 0;border-radius:4px;align-items:center;gap:8px;margin-top:1.2rem;padding:10px 20px;font-family:Nunito,sans-serif;font-size:11px;text-decoration:none;transition:all .3s;display:inline-flex}.btn-maps:hover{background:#b8964a26}.closing-section{background:var(--cream);text-align:center}.closing-body{color:var(--text-muted);margin:1rem 0;font-size:13px;line-height:1.9}.doa-card{border-left:3px solid var(--gold);text-align:left;background:#fff;border-radius:0 8px 8px 0;margin:1.2rem 0;padding:1.2rem 1.4rem}.doa-arabic{color:var(--green-mid);direction:rtl;margin-bottom:.6rem;font-family:Amiri,serif;font-size:1.2rem;line-height:1.8}.doa-latin{color:var(--text-muted);margin-bottom:.5rem;font-size:12px;font-style:italic;line-height:1.7}.doa-trans{color:var(--text-muted);font-size:12px;line-height:1.7}.closing-salam{color:var(--text-muted);margin:1rem 0 .5rem;font-size:13px}.closing-family{color:var(--green-dark);margin:.3rem 0;font-family:Amiri,serif;font-size:1.1rem;line-height:1.7}.hashtag{letter-spacing:2px;color:var(--gold);opacity:.8;margin-top:1.5rem;font-size:11px}.footer{background:var(--green-dark);text-align:center;color:#fff3;padding:1.5rem;font-size:11px}.rsvp-section{background:var(--green-dark);text-align:center}.rsvp-section .section-label{color:var(--gold-light)}.rsvp-section .section-title{color:#fff}.rsvp-body{color:#ffffff8c;margin:1rem 0 1.5rem;font-size:13px;line-height:1.9}.rsvp-card{background:#ffffff0d;border:1px solid #b8964a33;border-radius:12px;margin-bottom:1.2rem;padding:1.2rem}.rsvp-card-label{letter-spacing:3px;text-transform:uppercase;color:var(--gold-light);margin-bottom:.8rem;font-size:10px}.rsvp-counter{justify-content:center;align-items:center;gap:1.2rem;display:flex}.counter-btn{width:36px;height:36px;color:var(--gold-light);cursor:pointer;background:0 0;border:1px solid #b8964a66;border-radius:4px;font-size:20px;line-height:1;transition:all .2s}.counter-btn:hover{background:#b8964a26}.counter-val{color:#fff;min-width:40px;font-family:Amiri,serif;font-size:2rem}.rsvp-counter-sub{color:#ffffff59;letter-spacing:1px;margin-top:.5rem;font-size:11px}.rsvp-buttons{gap:10px;margin-bottom:1.2rem;display:flex}.btn-hadir{color:#fff6;letter-spacing:1px;cursor:pointer;background:0 0;border:1px solid #b8964a4d;border-radius:4px;flex:1;padding:11px 8px;font-family:Nunito,sans-serif;font-size:12px;transition:all .3s}.btn-hadir.aktif{border-color:var(--gold);color:var(--gold-light);background:#b8964a1a}.btn-wa{color:#fff;letter-spacing:1px;cursor:pointer;background:#25d366;border:none;border-radius:6px;justify-content:center;align-items:center;gap:8px;width:100%;padding:13px 20px;font-family:Nunito,sans-serif;font-size:13px;font-weight:600;transition:all .3s;display:inline-flex}.btn-wa:hover{background:#1ebe5d}.fade-in{opacity:0;transition:opacity .7s,transform .7s;transform:translateY(20px)}.fade-in.visible{opacity:1;transform:translateY(0)}.hidden{display:none!important}
.admin-page{background:var(--cream);max-width:1100px;min-height:100vh;color:var(--text-dark);margin:0 auto;padding:24px;font-family:Nunito,sans-serif}.admin-topbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;display:flex}.admin-title{color:var(--green-dark);margin:0;font-family:Amiri,serif;font-size:2rem}.admin-actions{flex-wrap:wrap;gap:8px;display:flex}.admin-stats{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:20px 0;display:grid}.admin-stat{background:#fff;border:1px solid #b8964a33;border-radius:10px;padding:16px}.admin-stat span{color:var(--text-muted);font-size:12px}.admin-stat strong{color:var(--green-dark);font-size:28px;display:block}.admin-table{border-collapse:collapse;background:#fff;border-radius:10px;width:100%;overflow:hidden}.admin-table th,.admin-table td{text-align:left;border-bottom:1px solid #eee;padding:10px;font-size:13px}.admin-error{color:#b94a48}.admin-success{color:#2e7d32}.admin-login{width:100%;max-width:330px;position:relative}.admin-login .input-nama{text-align:left}.rsvp-message{color:#fff;resize:vertical;background:#ffffff0f;border:1px solid #b8964a66;border-radius:4px;outline:none;width:100%;min-height:74px;padding:11px 12px;font-family:Nunito,sans-serif;font-size:13px}.rsvp-message::placeholder{color:#ffffff40}.rsvp-current{color:#fff9;border-left:3px solid var(--gold);text-align:left;background:#b8964a14;margin-bottom:1rem;padding:10px 12px;font-size:12px;line-height:1.7}.home-link{margin-top:1rem}.dash-page{color:#1a1a1a;background:#f6efe4;min-height:100vh;padding:28px;font-family:Nunito,sans-serif}.dash-header{justify-content:space-between;align-items:flex-start;gap:18px;max-width:1180px;margin:0 auto 22px;display:flex}.dash-kicker{letter-spacing:4px;text-transform:uppercase;color:#b8964a;margin:0 0 6px;font-size:11px;font-weight:800}.dash-header h1,.dash-login-card h1{color:#1a2e1a;margin:0;font-family:Amiri,serif;font-size:2.2rem;line-height:1.1}.dash-sub,.dash-login-card p{color:#5a5a4a;line-height:1.7}.dash-actions{flex-wrap:wrap;gap:8px;display:flex}.dash-actions a,.dash-actions button,.dash-login-card button{color:#d4b06a;cursor:pointer;background:#1a2e1a;border:1px solid #b8964a;border-radius:8px;padding:10px 14px;font-family:Nunito,sans-serif;text-decoration:none}.dash-stats{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;max-width:1180px;margin:0 auto 16px;display:grid}.dash-stat{background:#fff;border:1px solid #b8964a38;border-radius:16px;padding:18px;box-shadow:0 12px 35px #1a2e1a0f}.dash-stat span{color:#5a5a4a;font-size:12px}.dash-stat strong{color:#1a2e1a;margin:5px 0;font-size:34px;line-height:1.1;display:block}.dash-stat small{color:#8b806d}.dash-stat.primary{background:#1a2e1a}.dash-stat.primary span,.dash-stat.primary small{color:#ffffff9e}.dash-stat.primary strong{color:#fff}.dash-stat.ok{border-color:#4a7a4a59}.dash-stat.warn{border-color:#b8964a80}.dash-stat.danger{border-color:#b94a4840}.dash-date{font-size:17px!important;line-height:1.35!important}.dash-progress-card,.dash-panel{background:#fff;border:1px solid #b8964a38;border-radius:16px;max-width:1180px;margin:0 auto 16px;padding:18px;box-shadow:0 12px 35px #1a2e1a0f}.dash-progress-head{color:#1a2e1a;justify-content:space-between;margin-bottom:10px;display:flex}.dash-progress{background:#efe6d5;border-radius:999px;height:13px;overflow:hidden}.dash-progress div{background:linear-gradient(90deg,#1a2e1a,#b8964a);border-radius:999px;height:100%}.dash-legend{color:#5a5a4a;flex-wrap:wrap;gap:14px;margin-top:12px;font-size:13px;display:flex}.okdot:before,.dangerdot:before,.warndot:before{content:"";border-radius:50%;width:9px;height:9px;margin-right:6px;display:inline-block}.okdot:before{background:#4a7a4a}.dangerdot:before{background:#b94a48}.warndot:before{background:#b8964a}.dash-grid{grid-template-columns:repeat(3,1fr);gap:16px;max-width:1180px;margin:0 auto 16px;display:grid}.dash-panel{margin:0}.dash-panel.full{max-width:1180px;margin:0 auto}.dash-panel h2{color:#1a2e1a;margin:0 0 12px;font-family:Amiri,serif;font-size:1.45rem}.dash-list{gap:8px;max-height:330px;display:grid;overflow:auto}.dash-list-item{border-bottom:1px solid #f0eadf;justify-content:space-between;align-items:center;gap:10px;padding:8px 0;font-size:13px;display:flex}.dash-list-item a{color:#b8964a}.dash-list-item strong{color:#1a2e1a}.dash-list-item em{color:#5a5a4a;font-size:12px}.dash-empty{color:#8b806d;font-size:13px}.dash-table-wrap{overflow:auto}.dash-table{border-collapse:collapse;width:100%;min-width:850px}.dash-table th,.dash-table td{text-align:left;border-bottom:1px solid #eee;padding:10px;font-size:13px}.dash-table th{color:#1a2e1a;background:#faf6ef}.dash-table a{color:#b8964a}.dash-badge{color:#5a5a4a;background:#eee;border-radius:999px;padding:4px 9px;font-size:12px;display:inline-flex}.dash-badge.hadir{color:#2d4a2d;background:#4a7a4a21}.dash-badge.tidak_hadir{color:#9b3331;background:#b94a481f}.dash-badge.pending{color:#8a6d28;background:#f5edd8}.dash-login-page{background:#1a2e1a;justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.dash-login-card{background:#faf6ef;border:1px solid #b8964a59;border-radius:18px;width:100%;max-width:380px;padding:28px;box-shadow:0 22px 70px #00000040}.dash-login-card input{border:1px solid #b8964a73;border-radius:8px;width:100%;margin:10px 0 12px;padding:13px;font-family:Nunito,sans-serif}.dash-login-card button{justify-content:center;width:100%}.dash-error{color:#b94a48;margin-bottom:10px;font-size:13px;display:block}@media (max-width:850px){.dash-page{padding:16px}.dash-header{display:block}.dash-actions{margin-top:14px}.dash-grid{grid-template-columns:1fr}.dash-header h1,.dash-login-card h1{font-size:1.8rem}}
