:root{--bg:#f6f7fb;--card:#fff;--ink:#101828;--muted:#667085;--line:#e6e9f0;--brand:#7c3aed;--brand2:#06b6d4;--danger:#dc2626;--success:#059669;--shadow:0 24px 70px #1018281f;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Arial}*{box-sizing:border-box}body{background:radial-gradient(circle at top left, #eef2ff, transparent 34%), var(--bg);color:var(--ink);margin:0}button,input{font:inherit}.spin{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.btn{cursor:pointer;border:0;border-radius:16px;align-items:center;gap:8px;padding:12px 18px;font-weight:800;transition:all .2s;display:inline-flex}.btn--primary{background:linear-gradient(135deg, var(--brand), var(--brand2));color:#fff;box-shadow:0 16px 32px #7c3aed40}.btn--ghost{color:#344054;border:1px solid var(--line);background:#fff}.btn--danger{background:linear-gradient(135deg, #ef4444, var(--danger));color:#fff;box-shadow:0 16px 32px #dc262638}.btn--success{background:linear-gradient(135deg, #10b981, var(--success));color:#fff;box-shadow:0 16px 32px #05966938}.btn:disabled{opacity:.6;cursor:not-allowed}.iconBtn{border:1px solid var(--line);cursor:pointer;color:#344054;background:#fff;border-radius:14px;place-items:center;width:40px;height:40px;display:inline-grid}.iconBtn.danger{color:var(--danger)}.eyebrow{text-transform:uppercase;letter-spacing:.16em;color:var(--brand);margin:0 0 8px;font-size:12px;font-weight:900}.loginPage{background-position:50%;background-size:cover;justify-content:flex-end;align-items:center;min-height:100vh;padding:40px 9vw;transition:background-image .7s;display:flex}.loginCard{color:#fff;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#0a0f1e94;border:1px solid #ffffff61;border-radius:32px;width:min(410px,100%);padding:34px;position:relative;overflow:hidden;box-shadow:0 35px 90px #00000059}.loginGlow{filter:blur(70px);background:#7c3aeda6;width:240px;height:240px;position:absolute;inset:-120px -100px auto auto}.loginLogo{object-fit:contain;height:62px;margin-bottom:22px;position:relative}.loginCard h1{margin:0 0 12px;font-size:42px;line-height:1}.loginCopy{color:#ffffffc7;margin-bottom:24px;line-height:1.55}.loginCard label{margin:14px 0;display:block}.loginCard label span{color:#ffffffd1;margin-bottom:8px;font-size:13px;font-weight:800;display:block}.loginCard input{background:#ffffffeb;border:1px solid #ffffff47;border-radius:16px;outline:none;width:100%;height:50px;padding:0 16px}.passWrap{display:flex;position:relative}.passWrap button{cursor:pointer;background:0 0;border:0;width:40px;height:40px;position:absolute;top:5px;right:8px}.loginBtn{color:#111827;cursor:pointer;background:linear-gradient(135deg,#fff,#d9e4ff);border:0;border-radius:18px;justify-content:center;align-items:center;gap:8px;width:100%;height:54px;margin-top:12px;font-weight:900;display:flex}.shell{min-height:100vh;display:flex}.sidebar{border-right:1px solid var(--line);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);z-index:20;background:#ffffffe0;flex-direction:column;width:284px;height:100vh;padding:22px;display:flex;position:sticky;top:0}.brand{align-items:center;gap:12px;margin-bottom:32px;font-size:20px;font-weight:900;display:flex}.brand img{object-fit:contain;background:#111827;border-radius:16px;width:48px;height:48px;padding:6px}.navItem,.logout{color:#344054;cursor:pointer;background:0 0;border:0;border-radius:16px;align-items:center;gap:12px;width:100%;padding:13px 14px;font-weight:800;text-decoration:none;display:flex}.navItem.active{color:var(--brand);background:linear-gradient(135deg,#7c3aed21,#06b6d421)}.logout{color:#b42318;margin-top:auto}.shellMain{flex:1;min-width:0}.topbar{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);z-index:10;background:#f6f7fbc7;border-bottom:1px solid #e6e9f0b3;align-items:center;gap:16px;height:76px;padding:0 32px;display:flex;position:sticky;top:0}.topbar span{color:var(--muted);font-size:13px;display:block}.mobileMenu{display:none}.shell main{padding:28px 32px 50px}.hero{box-shadow:var(--shadow);background:linear-gradient(135deg,#fff,#ffffffb8);border:1px solid #fffc;border-radius:34px;justify-content:space-between;align-items:flex-end;gap:24px;padding:30px;display:flex}.hero h1{margin:0 0 8px;font-size:44px}.hero p{color:var(--muted);max-width:720px}.heroActions{flex-wrap:wrap;gap:12px;display:flex}.toolbar{align-items:center;gap:14px;margin:24px 0;display:flex}.search{border:1px solid var(--line);background:#fff;border-radius:18px;flex:1;align-items:center;gap:10px;height:56px;padding:0 16px;display:flex}.search input{border:0;outline:0;width:100%}.metric{border:1px solid var(--line);background:#fff;border-radius:18px;justify-content:center;align-items:center;gap:8px;min-width:110px;height:56px;display:flex}.metric b{font-size:22px}.metric span{color:var(--muted);font-size:13px}.section{margin-top:18px}.sectionTitle{cursor:pointer;background:0 0;border:0;justify-content:space-between;align-items:center;width:100%;padding:10px 4px;display:flex}.sectionTitle span{font-size:20px;font-weight:900}.sectionTitle b{color:#fff;background:#111827;border-radius:999px;padding:4px 10px}.weddingList{flex-direction:column;gap:10px;display:flex}.weddingRow{border:1px solid var(--line);background:#fff;border-radius:22px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px;padding:14px 14px 14px 16px;display:grid;box-shadow:0 10px 28px #1018280b}.weddingRowMain{min-width:0}.weddingTitleLine{align-items:center;gap:10px;min-width:0;display:flex}.weddingTitleLine h3{white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:18px;line-height:1.25;overflow:hidden}.weddingMeta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:10px 16px;margin-top:8px;font-size:13px;display:flex}.weddingMeta span{white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:6px;min-width:0;max-width:260px;display:inline-flex;overflow:hidden}.rowActions{justify-content:flex-end;align-items:center;gap:8px;display:flex}.rowActions button{border:1px solid var(--line);cursor:pointer;color:#344054;background:#fff;border-radius:12px;align-items:center;gap:6px;height:38px;padding:0 10px;font-size:13px;font-weight:800;display:flex}.rowActions button:hover{background:#f8fafc;border-color:#c8d0dc}.rowActions .danger{color:var(--danger)}.rowActions .success{color:var(--success)}.rowActions button:disabled{opacity:.62;cursor:not-allowed}.weddingRowCancelled{background:linear-gradient(135deg,#fff,#fff7f7);border-color:#fecaca}.statusBadge{text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;border-radius:999px;align-items:center;padding:4px 10px;font-size:11px;font-weight:900;display:inline-flex}.statusCancelled{color:var(--danger);background:#fef2f2;border:1px solid #fecaca}.empty{color:var(--muted);background:#fff;border:1px dashed #cbd5e1;border-radius:24px;justify-content:center;align-items:center;gap:10px;padding:28px;display:flex}.emptyCompact{border-radius:18px;padding:16px}.modalBackdrop{z-index:50;background:#0f172a9e;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modalCard{background:#fff;border-radius:30px;width:min(620px,100%);max-height:92vh;overflow:auto;box-shadow:0 40px 110px #00000059}.modalCard--lg{width:min(860px,100%)}.modalCard--xl{width:min(1080px,100%)}.modalHead{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);z-index:2;background:#ffffffeb;justify-content:space-between;gap:16px;padding:22px 24px;display:flex;position:sticky;top:0}.modalHead h2{margin:0}.modalHead p{color:var(--muted);margin:5px 0 0}.modalBody{padding:24px}.modalFooter{border-top:1px solid var(--line);justify-content:flex-end;padding:18px 24px;display:flex}.gridForm{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.gridForm label{color:#344054;flex-direction:column;gap:7px;font-weight:850;display:flex}.gridForm input{border:1px solid var(--line);border-radius:14px;outline:none;height:48px;padding:0 14px}.gridForm input:focus,.search:focus-within{border-color:var(--brand);box-shadow:0 0 0 4px #7c3aed1a}.formActions{grid-column:1/-1;justify-content:flex-end;display:flex}.uploadPanel{align-items:center;gap:14px;margin-bottom:18px;display:flex}.progress{background:#eef2f7;border-radius:999px;flex:1;height:10px;overflow:hidden}.progress span{background:linear-gradient(90deg, var(--brand), var(--brand2));height:100%;display:block}.fileGrid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.fileCard{border:1px solid var(--line);background:#fff;border-radius:22px;overflow:hidden}.filePreview{color:#fff;background:#0f172a;place-items:center;height:170px;display:grid;position:relative}.filePreview img,.filePreview video{object-fit:cover;width:100%;height:100%}.filePreview svg{width:52px;height:52px}.filePreview span{text-transform:uppercase;background:#00000073;border-radius:999px;padding:4px 9px;font-size:12px;position:absolute;top:10px;left:10px}.fileInfo{padding:12px}.fileInfo strong{white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.fileInfo small{color:var(--muted)}.fileActions{gap:8px;padding:0 12px 12px;display:flex}.scrim{display:none}@media (width<=1100px){.fileGrid{grid-template-columns:repeat(2,minmax(0,1fr))}.weddingRow{grid-template-columns:1fr}.rowActions{flex-wrap:wrap;justify-content:flex-start}.hero{flex-direction:column;align-items:flex-start}.sidebar{width:250px}}@media (width<=760px){.loginPage{justify-content:center;padding:18px}.loginCard{border-radius:26px;padding:26px}.loginCard h1{font-size:34px}.sidebar{transition:all .2s;position:fixed;transform:translate(-105%)}.sidebar.isOpen{transform:translate(0)}.scrim{z-index:15;background:#0f172a6b;border:0;display:block;position:fixed;inset:0}.mobileMenu{border:1px solid var(--line);background:#fff;border-radius:14px;place-items:center;width:42px;height:42px;display:grid}.topbar{height:auto;min-height:68px;padding:12px 16px}.shell main{padding:18px 14px 36px}.hero{border-radius:26px;padding:22px}.hero h1{font-size:34px}.toolbar{flex-wrap:wrap}.search{flex-basis:100%}.metric{flex:1}.fileGrid{grid-template-columns:1fr}.weddingRow{border-radius:20px;padding:14px}.weddingTitleLine{flex-direction:column;align-items:flex-start;gap:8px}.weddingTitleLine h3{white-space:normal;font-size:17px}.weddingMeta{grid-template-columns:1fr;gap:8px;display:grid}.weddingMeta span{white-space:normal;max-width:100%}.rowActions{grid-template-columns:repeat(2,minmax(0,1fr));width:100%;display:grid}.rowActions button{justify-content:center;width:100%;height:42px}.rowActions button:last-child{grid-column:1/-1}.loginLogMain{gap:10px}.loginLogMeta{grid-template-columns:1fr}.loginLogItem{padding:14px}.gridForm{grid-template-columns:1fr}.filePreview{height:210px}.modalBackdrop{place-items:end center;padding:10px}.modalCard{border-radius:24px 24px 0 0;max-height:94vh}.modalBody{padding:18px}.heroActions{width:100%}.heroActions .btn{flex:1;justify-content:center}}.adminPage{background:radial-gradient(circle at top left, #eef2ff, transparent 34%), var(--bg);min-height:100vh;color:var(--ink)}.adminTopbar{z-index:20;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-bottom:1px solid var(--line);background:#f6f7fbe6;justify-content:space-between;align-items:center;gap:16px;min-height:68px;padding:12px 28px;display:flex;position:sticky;top:0}.adminBrand{align-items:center;gap:12px;min-width:0;display:flex}.adminBrand img{object-fit:contain;background:#111827;border-radius:14px;width:42px;height:42px;padding:6px}.adminBrand strong{color:var(--ink);font-size:17px;line-height:1.1;display:block}.adminBrand span{color:var(--muted);margin-top:3px;font-size:13px;display:block}.adminLogout{border:1px solid var(--line);color:#b42318;background:#fff;border-radius:14px;align-items:center;gap:8px;height:42px;padding:0 14px;font-weight:850;display:inline-flex}.adminMain{width:min(1480px,100%);margin:0 auto;padding:24px 28px 48px}.pageHeader{justify-content:space-between;align-items:center;gap:18px;margin-bottom:20px;display:flex}.pageHeader h1{margin:0;font-size:32px;line-height:1.1}.pageHeader p{color:var(--muted);margin:5px 0 0}@media (width<=760px){.adminTopbar{padding:11px 14px}.adminBrand img{width:38px;height:38px}.adminBrand span{display:none}.adminLogout{justify-content:center;width:42px;padding:0}.adminLogout span{display:none}.adminMain{padding:18px 14px 36px}.pageHeader{flex-direction:column;align-items:stretch}.pageHeader h1{font-size:28px}}.weddingForm{gap:22px;display:grid}.eventsHeader{justify-content:space-between;align-items:center;gap:14px;display:flex}.eventsHeader h3{margin:0;font-size:20px}.eventsHeader p{color:var(--muted);margin:4px 0 0}.eventsList{gap:14px;display:grid}.eventCard{border:1px solid var(--line);background:#f8fafc;border-radius:22px;padding:16px}.eventCardHead{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.eventRemove{border:1px solid var(--line);width:38px;height:38px;color:var(--danger);background:#fff;border-radius:13px;place-items:center;display:grid}.eventGrid{grid-template-columns:1.4fr 140px 120px 1.4fr;gap:14px;display:grid}.eventGrid label{color:#344054;flex-direction:column;gap:7px;font-weight:850;display:flex}.eventGrid input{border:1px solid var(--line);background:#fff;border-radius:14px;outline:none;height:48px;padding:0 14px}.eventGrid input:focus{border-color:var(--brand);box-shadow:0 0 0 4px #7c3aed1a}@media (width<=860px){.eventsHeader{flex-direction:column;align-items:stretch}.eventsHeader .btn{justify-content:center;width:100%}.eventGrid{grid-template-columns:1fr 1fr}}@media (width<=560px){.eventGrid{grid-template-columns:1fr}}.weddingEvents{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.weddingEvents span{border:1px solid var(--line);color:#475467;background:#f1f5f9;border-radius:999px;align-items:center;gap:4px;padding:6px 10px;font-size:12px;display:inline-flex}.weddingEvents b{color:#101828}@media (width<=760px){.weddingEvents{grid-template-columns:1fr;display:grid}.weddingEvents span{border-radius:14px;justify-content:flex-start}.rowActions{grid-template-columns:repeat(3,minmax(0,1fr))}.rowActions button:last-child{grid-column:auto}}.accessAddForm{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:14px;margin-bottom:22px;display:grid}.accessAddForm label{color:#344054;flex-direction:column;gap:7px;font-weight:850;display:flex}.accessAddForm input{border:1px solid var(--line);border-radius:15px;outline:none;height:50px;padding:0 14px}.accessAddForm input:focus{border-color:var(--brand);box-shadow:0 0 0 4px #7c3aed1a}.accessList{gap:12px;display:grid}.accessRow{border:1px solid var(--line);background:#fff;border-radius:20px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;padding:14px;display:grid}.accessIcon{color:#fff;background:linear-gradient(135deg, var(--brand), var(--brand2));border-radius:15px;place-items:center;width:44px;height:44px;display:grid}.accessInfo{min-width:0}.accessInfo strong{text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:7px;font-size:15px;display:flex;overflow:hidden}.accessInfo span,.accessInfo small{color:var(--muted);margin-top:4px;font-size:13px;display:block}.accessInfo b{color:var(--ink);letter-spacing:.04em}.accessActions{gap:8px;display:flex}.accessActions button{border:1px solid var(--line);background:#fff;border-radius:13px;align-items:center;gap:7px;height:40px;padding:0 11px;font-weight:850;display:inline-flex}.accessActions .danger{color:var(--danger)}.confirmBackdrop{z-index:80;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0f172a9e;place-items:center;padding:18px;display:grid;position:fixed;inset:0}.confirmPanel{border:1px solid var(--line);background:#fff;border-radius:28px;width:min(460px,100%);padding:30px;position:relative;box-shadow:0 40px 110px #00000059}.confirmClose{border:1px solid var(--line);background:#fff;border-radius:999px;place-items:center;width:38px;height:38px;display:grid;position:absolute;top:14px;right:14px}.confirmIcon{width:56px;height:56px;color:var(--danger);background:#fee4e2;border-radius:20px;place-items:center;margin-bottom:16px;display:grid}.confirmIconSuccess{color:var(--success);background:#dcfce7}.confirmPanel h3{margin:0 0 8px;font-size:24px}.confirmPanel p{color:var(--muted);margin:0 0 22px;line-height:1.55}.confirmPanel p strong{color:var(--ink)}.confirmActions{justify-content:flex-end;gap:10px;display:flex}@media (width<=640px){.accessAddForm{grid-template-columns:1fr}.accessAddForm .btn{justify-content:center;width:100%}.accessRow{grid-template-columns:1fr}.accessIcon{display:none}.accessActions{grid-template-columns:1fr 1fr;display:grid}.accessActions button{justify-content:center}.confirmPanel{border-radius:24px;padding:26px 20px}.confirmActions{flex-direction:column-reverse}.confirmActions .btn{width:100%}}.loginLogModal{gap:16px;padding:4px 0 2px;display:grid}.loginLogList{gap:12px;display:grid}.loginLogItem{background:linear-gradient(135deg,#fff,#f8fafc);border:1px solid #e2e8f0;border-radius:20px;padding:16px;box-shadow:0 12px 28px #0f172a0e}.loginLogMain{align-items:flex-start;gap:12px;min-width:0;display:flex}.loginLogIcon{color:#0f172a;background:#e0f2fe;border-radius:14px;flex:none;place-items:center;width:38px;height:38px;display:grid}.loginLogContent{flex:1;gap:10px;min-width:0;display:grid}.loginLogContent strong{color:#0f172a;overflow-wrap:anywhere;font-size:1rem;font-weight:900;line-height:1.35}.loginLogMeta{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.loginLogMeta span{color:#475569;overflow-wrap:anywhere;background:#f1f5f9;border-radius:999px;align-items:center;gap:7px;min-width:0;padding:8px 10px;font-size:.82rem;font-weight:800;line-height:1.25;display:inline-flex}.streamingModal{gap:18px;padding:4px 0 2px;display:grid}.streamingCopyBox,.streamingField{appearance:none;text-align:left;color:#0f172a;width:100%;box-shadow:none;background:#f8fafc;border:1px solid #e2e8f0;border-radius:18px;padding:15px 16px}.streamingCopyBox{cursor:pointer;justify-content:space-between;align-items:center;gap:14px;display:flex}.streamingCopyContent,.streamingFieldContent{gap:6px;min-width:0;display:grid}.streamingLabel{color:#64748b;text-transform:uppercase;letter-spacing:.08em;align-items:center;gap:7px;font-size:11px;font-weight:900;display:inline-flex}.streamingValue{color:#0f172a;word-break:break-all;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.92rem;font-weight:800;line-height:1.35;display:block}.streamingCopyIcon{color:#64748b;flex:none}.streamingList{gap:16px;display:grid}.streamingCard{background:#fff;border:1px solid #e2e8f0;border-radius:22px;padding:18px;box-shadow:0 14px 34px #0f172a0f}.streamingEventHeader{justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:16px;display:flex}.streamingEventHeader h3{color:#0f172a;margin:6px 0 0;font-size:1.15rem;font-weight:900}.streamingEventId{color:#475569;background:#f1f5f9;border-radius:999px;flex:none;padding:7px 11px;font-size:.78rem;font-weight:900}.streamingInfo{gap:10px;display:grid}.streamingField{justify-content:space-between;align-items:center;gap:14px;display:flex}.streamingClickable{cursor:pointer;transition:border-color .16s,background .16s,transform .16s}.streamingClickable:hover,.streamingCopyBox:hover{background:#f5f3ff;border-color:#c4b5fd;transform:translateY(-1px)}@media (width<=900px){.loginLogMeta{grid-template-columns:1fr}}@media (width<=760px){.loginLogMain{gap:10px}.loginLogItem{padding:14px}}
