.shell{min-height:100vh;display:flex}.dry-run-banner{color:#92400e;background:#fef3c7;border-bottom:2px solid #f59e0b;align-items:center;gap:8px;padding:10px 20px;font-size:13px;line-height:1.4;display:flex}.dry-run-banner .material-icons{color:#d97706;flex-shrink:0}.dry-run-banner code{background:#fde68a;border-radius:3px;padding:1px 4px;font-size:12px}.sidebar{width:var(--sidebar-width);background:var(--color-sidebar-bg);border-right:1px solid var(--color-sidebar-border);z-index:100;flex-direction:column;height:100vh;display:flex;position:fixed;top:0;left:0}.sidebar-logo{border-bottom:1px solid var(--color-sidebar-hover);align-items:center;gap:10px;padding:20px 16px 16px;display:flex}.logo-text{color:var(--color-sidebar-text);letter-spacing:.03em;font-size:18px;font-weight:700}.sidebar-nav{flex-direction:column;flex:1;gap:2px;padding:12px 8px;display:flex;overflow-y:auto}.sidebar-link{border-radius:var(--radius-sm);color:var(--color-sidebar-muted);align-items:center;gap:10px;padding:9px 12px;font-size:14px;font-weight:500;text-decoration:none;transition:background .12s,color .12s;display:flex}.sidebar-link:hover{background:var(--color-sidebar-hover);color:var(--color-sidebar-text);text-decoration:none}.sidebar-link.active{background:var(--color-primary);color:#fff}.sidebar-footer{border-top:1px solid var(--color-sidebar-hover);align-items:center;gap:8px;padding:12px 10px;display:flex}.sidebar-user{min-width:0;color:var(--color-sidebar-muted);flex:1;align-items:center;gap:8px;display:flex}.sidebar-user-info{flex-direction:column;min-width:0;display:flex}.sidebar-user-name{color:var(--color-sidebar-text);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:500;overflow:hidden}.sidebar-user-role{color:var(--color-sidebar-muted);text-transform:capitalize;font-size:11px}.sidebar-version{color:var(--color-sidebar-muted);opacity:.5;margin-top:1px;font-size:10px}.sidebar-logout{color:var(--color-sidebar-muted);flex-shrink:0}.sidebar-logout:hover{color:var(--color-danger);background:#ef44441a}.shell-main{margin-left:var(--sidebar-width);min-width:0;min-height:100vh;padding:var(--page-padding-top) var(--page-padding-right) var(--page-padding-bottom) var(--page-padding-left);background:var(--color-page-bg);flex:1;overflow-x:hidden}@media (width<=1024px){:root{--page-padding-top:24px;--page-padding-bottom:24px;--page-padding-left:28px;--page-padding-right:28px}}.mobile-menu-btn,.sidebar-backdrop{display:none}@media (width<=768px){:root{--page-padding-top:16px;--page-padding-bottom:16px;--page-padding-left:10px;--page-padding-right:10px;--font-size-page-title:20px;--font-size-page-subtitle:12px;--font-size-table-cell:12px;--font-size-muted:12px;--table-cell-padding-y:9px;--table-cell-padding-x:12px}.sidebar{z-index:300;width:var(--sidebar-width);transition:transform .25s cubic-bezier(.4,0,.2,1);transform:translate(-100%);box-shadow:4px 0 24px #0000002e}.sidebar.sidebar-open{transform:translate(0)}.sidebar-backdrop{z-index:299;background:#0f172a73;animation:.2s backdrop-in;display:block;position:fixed;inset:0}@keyframes backdrop-in{0%{opacity:0}to{opacity:1}}.shell-main{margin-left:0;padding-top:56px}.mobile-menu-btn{z-index:200;background:var(--color-surface);border-bottom:1px solid var(--color-border);align-items:center;gap:12px;height:52px;padding:0 16px;display:flex;position:fixed;top:0;left:0;right:0;box-shadow:0 1px 4px #0000000f}.mobile-menu-btn button{cursor:pointer;border-radius:var(--radius-sm);color:var(--color-text);background:0 0;border:none;justify-content:center;align-items:center;padding:6px;transition:background .12s;display:inline-flex}.mobile-menu-btn button:hover{background:var(--color-page-bg)}.mobile-menu-btn .mobile-logo-text{color:var(--color-text);letter-spacing:.03em;font-size:16px;font-weight:700}.sidebar.sidebar-open .logo-text,.sidebar.sidebar-open .sidebar-user-info,.sidebar.sidebar-open .sidebar-user-name,.sidebar.sidebar-open .sidebar-user-role,.sidebar.sidebar-open .sidebar-link>span+*{display:block}}.modal-overlay{z-index:200;-webkit-overflow-scrolling:touch;background:#0f172a80;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0;overflow-y:auto}.modal-box{background:var(--color-surface);border-radius:var(--radius-lg);flex-direction:column;width:100%;max-width:480px;max-height:calc(100vh - 32px);margin:auto;animation:.2s cubic-bezier(.16,1,.3,1) modal-in;display:flex;box-shadow:0 20px 60px #00000026}.modal-wide{max-width:700px}.modal-template{max-width:920px}@keyframes modal-in{0%{opacity:0;transform:translateY(16px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}.modal-header{border-bottom:1px solid var(--color-border);flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;padding:20px 24px 16px;display:flex}.modal-title{color:var(--color-text);font-size:18px;font-weight:700;line-height:1.3}.modal-body{flex-direction:column;flex:1;padding:24px;display:flex;overflow-y:auto}.modal-footer{border-top:1px solid var(--color-border);flex-wrap:wrap;flex-shrink:0;justify-content:flex-end;gap:10px;padding:16px 24px;display:flex}.modal-footer .btn{flex-shrink:0}@media (width<=768px){.modal-overlay{padding:12px}.modal-box{max-height:calc(100vh - 24px)}.modal-header{padding:16px 20px 12px}.modal-body{padding:20px}.modal-footer{gap:8px;padding:12px 20px}.modal-footer .btn{flex:1;min-width:100px}}@media (width<=768px){.page-header{margin-top:10px}}.filters-row{flex-wrap:wrap;align-items:stretch;gap:12px;margin-bottom:20px;display:flex}.search-wrap{flex:1;min-width:220px;display:flex;position:relative}.search-icon{color:var(--color-text-muted);pointer-events:none;z-index:1;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.search-input{flex:1;width:100%;padding-left:36px}.filter-select{flex-shrink:0;width:auto;min-width:160px}@media (width<=768px){.filters-row{flex-direction:column;gap:10px}.search-wrap{order:1;min-width:auto}.filter-select{order:2;width:100%;min-width:auto}}.table-scroll{-webkit-overflow-scrolling:touch;width:100%;max-width:100%;overflow-x:auto}@media (width<=768px){.table-scroll{scroll-behavior:smooth}.table-card,.table-card.card{box-shadow:none;background:0 0;border:none;border-radius:0;padding:0;overflow:visible}}.table-empty{text-align:center;color:var(--color-text-muted);padding:48px 24px;font-size:14px;line-height:1.5}.pagination-bar{justify-content:center;align-items:center;gap:16px;margin-top:16px;padding:12px 0;display:flex}.pagination-bar .btn{align-items:center;gap:4px;display:inline-flex}.pagination-info{color:var(--color-text-muted);font-size:14px}.data-table th{text-align:left;padding:var(--table-header-padding-y) var(--table-header-padding-x);font-size:var(--font-size-table-header);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--color-border);white-space:nowrap;background:#fafbfc;font-weight:600}.data-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .15s,color .15s;display:table-cell}.data-table th.sortable:hover{color:var(--color-text);background:#f5f6fa}.data-table tbody tr td:first-child{padding-left:calc(var(--table-cell-padding-x) - 3px);border-left:3px solid #0000}.sort-icon{vertical-align:middle;opacity:.5;margin-left:4px;font-size:16px;transition:opacity .15s}.data-table th.sortable:hover .sort-icon{opacity:.8}.guest-name{color:var(--color-text);font-weight:600;font-size:calc(var(--font-size-table-cell) + .5px);line-height:1.3}.promo{font-family:var(--font-mono);background:var(--color-page-bg);color:var(--color-text);white-space:nowrap;border-radius:4px;padding:3px 7px;font-size:11px;display:inline-block}.row-actions{justify-content:flex-end;align-items:center;gap:4px;display:flex}.row-unsubscribed td{opacity:.85;background:#fff5f5}.row-unsubscribed td:first-child{border-left-color:var(--color-danger,#ef4444)}.row-unsubscribed:hover td{background:#fee2e2}.unsub-tag{background:var(--color-danger,#dc2626);color:#fff;vertical-align:middle;text-transform:uppercase;letter-spacing:.03em;border-radius:999px;margin-left:6px;padding:2px 7px;font-size:9px;font-weight:600;display:inline-block}.row-disabled td{opacity:.8;background:#fffbeb}.row-disabled td:first-child{border-left-color:#d97706}.row-disabled:hover td{background:#fef3c7}.disabled-tag{color:#fff;vertical-align:middle;text-transform:uppercase;letter-spacing:.03em;background:#d97706;border-radius:999px;margin-left:6px;padding:2px 7px;font-size:9px;font-weight:600;display:inline-block}.guest-name-row{display:contents}.guest-meta-mobile,.guest-meta-sep{display:none}@media (width<=768px){.table-scroll{overflow-x:visible}.data-table{border-collapse:separate;flex-direction:column;display:flex}.data-table thead{display:none}.data-table tbody{flex-direction:column;gap:4px;display:flex}.data-table tbody tr,.data-table tbody td{width:100%;display:block}.data-table tbody tr{background:var(--color-surface,#fff);border:1px solid var(--color-border);border-left:3px solid var(--color-border);border-radius:6px;padding:7px 10px;position:relative}.data-table tbody tr.tile-status-pending{border-left-color:#f59e0b}.data-table tbody tr.tile-status-claimed{border-left-color:#10b981}.data-table tbody tr.tile-status-attended{border-left-color:#3b82f6}.data-table tbody tr.tile-status-no_show{border-left-color:#ef4444}.data-table tbody tr.row-unsubscribed{border-left-color:var(--color-danger,#dc2626)}.data-table tbody tr.row-disabled{border-left-color:#d97706}.data-table tbody tr:hover td{background:0 0}.data-table td{padding:0;border:none!important}.col-email,.col-company,.col-promo,.col-status,.col-last-contacted,.col-salesperson{display:none!important}.col-name{padding-right:72px}.guest-name-row{align-items:center;gap:5px;display:flex}.guest-name{font-size:13px;line-height:1.1}.unsub-tag,.disabled-tag{margin-left:0;padding:1px 5px;font-size:8px}.guest-meta-mobile{align-items:center;gap:5px;margin-top:2px;display:flex;overflow:hidden}.guest-email-mobile{color:var(--color-text-muted);white-space:nowrap;text-overflow:ellipsis;flex-shrink:1;min-width:0;font-size:11px;display:inline;overflow:hidden}.guest-meta-sep{color:var(--color-border);flex-shrink:0;font-size:11px;display:inline}.guest-promo-mobile{white-space:nowrap;border-radius:3px;flex-shrink:0;padding:1px 5px;font-size:9px;display:inline}.col-actions{padding:0;position:absolute;top:5px;right:6px;width:auto!important}.row-actions{gap:0}.row-actions .icon-btn{min-width:24px;min-height:24px;padding:3px}.row-actions .icon-btn .material-icons.sm{font-size:14px}.row-editing{border-color:var(--color-primary)!important;border-left-color:var(--color-primary)!important;background:#f5f7ff!important;border-radius:6px 6px 0 0!important}.row-editing>td{background:0 0!important}.inline-edit-row{background:var(--color-surface)!important;border:1px solid var(--color-primary)!important;border-top:none!important;border-radius:0 0 6px 6px!important;margin-top:-4px!important;padding:0!important}.inline-edit-row>td{padding:0}.inline-edit-panel{gap:10px;padding:10px 12px 14px}}.send-success{color:var(--color-text-muted);flex-direction:column;align-items:center;gap:12px;padding:24px 0;font-size:15px;display:flex}.preview-box{border:1px solid var(--color-border);border-radius:var(--radius-md);margin-bottom:16px;overflow:hidden}.preview-subject{background:var(--color-page-bg);border-bottom:1px solid var(--color-border);color:var(--color-text-muted);padding:10px 14px;font-size:13px}.preview-iframe{background:#fff;border:none;width:100%;height:300px;display:block}.activity-list{flex-direction:column;gap:8px;display:flex}.activity-item{background:var(--color-page-bg);border-radius:var(--radius-sm);border:1px solid var(--color-border);align-items:flex-start;gap:10px;padding:10px 12px;display:flex}.activity-icon{color:var(--color-primary);flex-shrink:0;margin-top:1px}.activity-content{flex-direction:column;flex:1;gap:2px;display:flex}.activity-action{color:var(--color-text);text-transform:capitalize;font-size:13px;font-weight:500}.activity-detail{color:var(--color-text-muted);word-break:break-all;font-size:12px}.activity-time{color:var(--color-text-muted);white-space:nowrap;flex-shrink:0;font-size:11px}.row-editing>td{background:#eff6ff!important}.inline-edit-row>td{background:var(--color-surface);border-bottom:2px solid var(--color-primary);padding:0}.inline-edit-panel{flex-direction:column;gap:20px;padding:24px 28px 28px;animation:.15s panel-in;display:flex}@keyframes panel-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.inline-edit-grid{grid-template-columns:repeat(3,1fr);gap:18px 24px;display:grid}.inline-edit-grid .form-group{margin-bottom:0}.inline-edit-grid .span-2{grid-column:span 2}.inline-edit-grid label{text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);margin-bottom:6px;font-size:11px;font-weight:600}.inline-edit-actions{border-top:1px solid var(--color-border);justify-content:flex-end;align-items:center;gap:8px;margin-top:4px;padding-top:4px;display:flex}.inline-edit-actions-right{align-items:center;gap:8px;display:flex}.btn-edit-active{color:var(--color-primary);background:#eff6ff;border-color:#bfdbfe}@media (width<=768px){.inline-edit-grid{grid-template-columns:1fr 1fr;gap:8px}.inline-edit-grid .span-2{grid-column:span 2}.inline-edit-grid label{margin-bottom:2px;font-size:10px}.inline-edit-grid input,.inline-edit-grid select,.inline-edit-grid textarea{padding:7px 9px;font-size:13px}.inline-edit-actions{gap:6px;margin-top:2px;padding-top:2px}}@media (width<=380px){.inline-edit-grid{grid-template-columns:1fr;gap:8px}.inline-edit-grid .span-2{grid-column:span 1}}.add-count-banner{border-radius:var(--radius-sm);color:#065f46;background:#f0fdf4;border:1px solid #bbf7d0;align-items:center;gap:8px;margin-bottom:16px;padding:8px 12px;font-size:13px;font-weight:500;display:flex}.gmail-auth-banner{border-radius:var(--radius-sm);color:#9a3412;background:#fff7ed;border:1px solid #fed7aa;align-items:center;gap:8px;margin-bottom:16px;padding:10px 14px;font-size:13px;font-weight:500;display:flex}.page{max-width:1500px;margin:0 auto}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:28px;display:flex}.page-header>div{flex:1;min-width:200px}.page-header button{flex-shrink:0}.page-title{font-size:var(--font-size-page-title);color:var(--color-text);margin-bottom:2px;font-weight:700;line-height:1.2}.page-subtitle{font-size:var(--font-size-page-subtitle);color:var(--color-text-muted);line-height:1.4}.text-muted{color:var(--color-text-muted);font-size:var(--font-size-muted)}.success-block{color:var(--color-text-muted);flex-direction:column;align-items:center;gap:12px;padding:24px 0;font-size:15px;display:flex}.empty-state{color:var(--color-text-muted);text-align:center;flex-direction:column;align-items:center;gap:16px;padding:60px 24px;display:flex}.empty-state .material-icons{opacity:.6}.empty-state p{font-size:15px;line-height:1.5}.card-list{flex-direction:column;gap:16px;display:flex}.template-card{border-left:4px solid var(--color-border);flex-direction:column;gap:12px;padding:0;transition:border-color .15s,box-shadow .15s;display:flex}.template-card.active{border-left-color:var(--color-success)}.template-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.template-header>div{flex:1;min-width:200px}.template-name{color:var(--color-text);margin-bottom:4px;font-size:16px;font-weight:700;line-height:1.3}.template-subject{font-size:var(--font-size-muted);color:var(--color-text-muted);line-height:1.4}.template-actions{flex-wrap:wrap;flex-shrink:0;justify-content:flex-end;gap:8px;display:flex}.template-meta{flex-wrap:wrap;align-items:center;gap:12px;display:flex}@media (width<=768px){.page-header{margin-top:10px}.card-list{gap:12px}.template-card{gap:10px}.template-header{flex-direction:column}.template-actions{width:100%}}.campaign-page{max-width:1600px}.campaign-page .campaign-card{max-width:unset}.audience-count{color:var(--color-text-muted);margin-left:2px;font-weight:500}.campaign-card{max-width:560px}.campaign-auth-warning{border-radius:var(--radius-sm);color:#9a3412;background:#fff7ed;border:1px solid #fed7aa;align-items:flex-start;gap:8px;margin-bottom:16px;padding:10px 14px;font-size:13px;font-weight:500;display:flex}.radio-group{flex-direction:column;gap:10px;margin-top:8px;display:flex}.radio-label{color:var(--color-text);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:10px;margin-bottom:0;padding:4px 0;font-size:14px;font-weight:400;transition:color .15s;display:flex}.radio-label:hover{color:var(--color-primary)}.radio-label input[type=radio]{cursor:pointer;width:auto;margin:0}.campaign-resume-banner{border-radius:var(--radius-md);background:#fffbeb;border:1px solid #fcd34d;align-items:center;gap:14px;margin-bottom:16px;padding:14px 18px;display:flex}.campaign-resume-banner-icon{color:#d97706;flex-shrink:0;align-items:center;display:flex}.campaign-resume-banner-icon .material-icons{font-size:28px}.campaign-resume-banner-body{flex:1;min-width:0}.campaign-resume-banner-title{color:var(--color-text);margin:0 0 2px;font-size:13px;font-weight:600}.campaign-resume-banner-detail{color:var(--color-text-muted);margin:0 0 2px;font-size:12px}.campaign-resume-banner-run-id{color:var(--color-text-muted);opacity:.7;margin:0;font-size:11px}.campaign-resume-banner-actions{flex-shrink:0;gap:8px;display:flex}.campaign-confirm-label{color:var(--color-text-muted);align-items:center;gap:2px;font-size:13px;display:inline-flex}.campaign-confirm-label strong{color:var(--color-text)}.campaign-progress{margin-bottom:16px}.campaign-progress-bar-wrap{background:#e2e8f0;border-radius:9999px;height:8px;margin-bottom:6px;overflow:hidden}.campaign-progress-bar-fill{background:var(--color-primary,#6366f1);border-radius:9999px;height:100%;transition:width .2s}.campaign-progress-label{color:var(--color-text-muted);margin:0;font-size:13px}.campaign-result{flex-wrap:wrap;align-items:flex-start;gap:16px;margin-bottom:20px;display:flex}.result-stat{border-radius:var(--radius-md);align-items:center;gap:12px;min-width:140px;padding:14px 20px;font-weight:600;display:flex}.result-stat.success{color:#065f46;background:#d1fae5}.result-stat.warning{color:#92400e;background:#fef3c7}.result-stat .material-icons{flex-shrink:0;font-size:24px}.result-num{font-size:24px;font-weight:700;line-height:1;display:block}.result-label{text-transform:uppercase;letter-spacing:.04em;opacity:.8;font-size:12px;font-weight:500}.skipped-details{color:var(--color-text-muted);width:100%;font-size:12px}.skipped-details summary{cursor:pointer;color:var(--color-text-muted);margin-bottom:6px;font-weight:500}.skipped-details ul{flex-direction:column;gap:2px;padding-left:12px;list-style:none;display:flex}.gmail-status{align-items:center;gap:4px;font-size:13px;display:inline-flex}.gmail-status.connected{color:var(--color-success-dark)}.gmail-status.disconnected{color:var(--color-danger)}.sp-name-row{display:contents}.sp-meta-mobile,.sp-meta-sep,.sp-gmail-label-mobile,.sp-role-mobile{display:none}@media (width<=768px){.sp-col-email,.sp-col-role,.sp-col-gmail{display:none!important}.table-scroll{overflow-x:visible}.data-table{border-collapse:separate;flex-direction:column;display:flex}.data-table thead{display:none}.data-table tbody{flex-direction:column;gap:4px;display:flex}.data-table tbody tr,.data-table tbody td{width:100%;display:block}.data-table tbody tr{background:var(--color-surface,#fff);border:1px solid var(--color-border);border-left:3px solid var(--color-border);border-radius:6px;padding:7px 10px;position:relative}.data-table tbody tr.sp-gmail-connected{border-left-color:#10b981}.data-table tbody tr.sp-gmail-disconnected{border-left-color:#ef4444}.data-table tbody tr:hover td{background:0 0}.data-table td{padding:0;border:none!important}.sp-col-name{padding-right:72px}.sp-name-row{align-items:center;gap:6px;display:flex}.sp-col-name .guest-name{font-size:13px;line-height:1.1}.sp-role-mobile{padding:1px 6px;font-size:9px;display:inline-flex}.sp-meta-mobile{align-items:center;gap:5px;margin-top:2px;display:flex;overflow:hidden}.sp-email-mobile{color:var(--color-text-muted);white-space:nowrap;text-overflow:ellipsis;flex-shrink:1;min-width:0;font-size:11px;display:inline;overflow:hidden}.sp-meta-sep{color:var(--color-border);flex-shrink:0;font-size:11px;display:inline}.sp-gmail-label-mobile{white-space:nowrap;flex-shrink:0;align-items:center;gap:2px;font-size:10px;font-weight:500;display:inline-flex}.sp-gmail-label-mobile.sp-connected{color:var(--color-success-dark,#059669)}.sp-gmail-label-mobile.sp-disconnected{color:var(--color-danger,#ef4444)}.sp-col-actions{padding:0;position:absolute;top:5px;right:6px;width:auto!important}.sp-col-actions .btn-sm{min-height:24px;padding:3px 7px;font-size:12px}.sp-col-actions .icon-btn{min-width:24px;min-height:24px;padding:3px}.sp-btn-label{display:none}}.stats-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px;margin-bottom:24px;display:grid}.stat-card{background:var(--color-surface);border-radius:var(--radius-lg);border:1px solid var(--color-border);align-items:center;gap:18px;padding:20px;transition:box-shadow .15s,transform .15s;display:flex;box-shadow:0 1px 2px #00000005}.stat-card:hover{box-shadow:0 4px 6px #00000014}.stat-icon{border-radius:var(--radius-md);background:linear-gradient(135deg,#6366f11a,#3b82f61a);flex-shrink:0;justify-content:center;align-items:center;width:52px;height:52px;display:flex}.stat-icon .material-icons{color:var(--color-primary);font-size:28px}.stat-body{flex-direction:column;gap:2px;display:flex}.stat-value{color:var(--color-text);font-size:32px;font-weight:800;line-height:1}.stat-label{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.03em;font-size:12px;font-weight:600}@media (width<=768px){.stats-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}.stat-card{gap:12px;padding:16px}.stat-value{font-size:28px}}.metrics-history{padding:20px 0 0;overflow:hidden}.metrics-history-header{padding:0 24px 16px}.metrics-history-title{color:var(--color-text);margin-bottom:4px;font-size:16px;font-weight:700}.metrics-history-note{font-size:13px}.metrics-history-event{white-space:nowrap;font-weight:600}.metrics-history .num{text-align:right;font-variant-numeric:tabular-nums}.table-card{border-radius:var(--radius-lg);padding:0;overflow:hidden;box-shadow:0 1px 3px #0000000d}.table-scroll{-webkit-overflow-scrolling:touch;overflow-x:auto}@media (width<=768px){.table-card{box-shadow:none;background:0 0;border:none;border-radius:0;padding:0;overflow:visible}}.data-table{border-collapse:collapse;width:100%;font-size:var(--font-size-table-cell)}.data-table th{text-align:left;padding:var(--table-header-padding-y) var(--table-header-padding-x);font-size:var(--font-size-table-header);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--color-border);white-space:nowrap;background:#fafbfc;font-weight:600;transition:background .15s,color .15s}.data-table th:hover{background:#f5f6fa}.data-table td{padding:var(--table-cell-padding-y) var(--table-cell-padding-x);border-bottom:1px solid var(--color-border);vertical-align:middle}.data-table tr:last-child td{border-bottom:none}.data-table tbody tr:hover td{background:#fafbfc}.guest-name{color:var(--color-text);font-weight:500}.form-error{color:var(--color-danger);margin-bottom:8px;font-size:13px}.form-label{font-size:var(--font-size-form-label);color:var(--color-text);text-transform:uppercase;letter-spacing:.02em;margin-bottom:6px;font-weight:600;display:block}.btn-back{color:var(--color-text-muted);align-items:center;gap:4px;margin-bottom:2px;padding:4px 8px;font-size:13px;display:inline-flex}.btn-back:hover{color:var(--color-text)}.editor-page-header-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.editor-save-confirmation{color:#16a34a;align-items:center;gap:5px;font-size:13px;font-weight:500;display:inline-flex}.editor-save-confirmation .material-icons.sm{color:#16a34a}.editor-page-footer{border-top:1px solid var(--color-border);justify-content:flex-end;gap:8px;margin-top:4px;padding-top:8px;display:flex}.template-editor-fields-row{grid-template-columns:1fr 1fr;gap:16px;display:grid}@media (width<=640px){.template-editor-fields-row{grid-template-columns:1fr}.editor-page-header-actions{justify-content:flex-end;width:100%}}.template-editor-form{flex-direction:column;gap:16px;display:flex}.page-howto{color:var(--color-text-muted);background:var(--color-page-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);flex-wrap:wrap;gap:8px 20px;margin:0 0 16px;padding:10px 14px;font-size:12.5px;line-height:1.4;list-style:none;display:flex}.page-howto li{flex:180px;align-items:flex-start;gap:8px;min-width:0;display:flex}.page-howto li.is-done{color:var(--color-text-muted-alt)}.page-howto li.is-current{color:var(--color-text)}.page-howto-n{background:var(--color-border);width:18px;height:18px;color:var(--color-text-muted);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;margin-top:1px;font-size:11px;font-weight:600;line-height:1;display:inline-flex}.page-howto li.is-current .page-howto-n{background:var(--color-primary);color:#fff}.page-howto li.is-done .page-howto-n{background:var(--color-success);color:#fff}.page-howto strong{color:var(--color-text);font-weight:600}.page-howto li.is-done strong{color:inherit}.page-howto code{font-size:11.5px}.page-howto-static .page-howto-n{background:var(--color-primary);color:#fff}.quality-scan{border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:13px;overflow:hidden}.quality-scan-ok{color:#166534;background:#f0fdf4;border-color:#86efac;align-items:center;gap:7px;padding:10px 14px;font-weight:500;display:flex}.quality-scan-ok .material-icons.sm{color:#16a34a}.quality-scan-group{padding:10px 14px}.quality-scan-group+.quality-scan-group{border-top:1px solid var(--color-border)}.quality-scan-heading{align-items:center;gap:6px;margin-bottom:6px;font-weight:600;display:flex}.quality-scan-error-heading{color:#b91c1c}.quality-scan-warning-heading{color:#92400e}.quality-scan-error-heading .material-icons.sm{color:#dc2626}.quality-scan-warning-heading .material-icons.sm{color:#d97706}.quality-scan-list{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.quality-scan-item{border-radius:var(--radius-sm);padding:4px 8px;font-size:12.5px;line-height:1.45}.quality-scan-item-error{color:#7f1d1d;background:#fef2f2;border-left:3px solid #f87171}.quality-scan-item-warning{color:#78350f;background:#fffbeb;border-left:3px solid #fbbf24}.available-fields-panel{background:var(--color-bg-muted,#f8fafc);border:1px solid var(--color-border);border-radius:var(--radius-md);flex-direction:column;gap:8px;padding:12px 14px;display:flex}.available-fields-panel .form-label{margin-bottom:0}.available-fields-hint{font-size:12px}.available-fields-chips{flex-wrap:wrap;gap:6px;display:flex}.field-chip{border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;text-align:left;background:#fff;align-items:center;gap:5px;padding:5px 10px;font-size:12px;transition:border-color .12s,background .12s,box-shadow .12s;display:inline-flex}.field-chip:hover{border-color:var(--color-primary,#3b82f6);background:#eff6ff;box-shadow:0 0 0 2px #bfdbfe55}.field-chip.used{border-color:var(--color-success,#059669);background:#f0fdf4}.field-chip-tag{color:var(--color-primary,#2563eb);font-family:ui-monospace,monospace;font-size:11px;font-weight:600}.field-chip.used .field-chip-tag{color:var(--color-success-dark,#047857)}.field-chip-label{color:var(--color-text-muted);font-size:11px}.field-chip-used-icon{color:var(--color-success,#059669);font-size:13px!important}.field-chip.inject{background:#faf5ff;border-style:dashed;border-color:#a78bfa}.field-chip.inject .field-chip-tag{color:#7c3aed}.field-chip.inject:hover{background:#f5f3ff;border-color:#7c3aed;box-shadow:0 0 0 2px #ddd6fe55}.field-chip.inject.used{border-color:var(--color-success,#059669);background:#f0fdf4}.editor-tabs{border-bottom:2px solid var(--color-border);align-items:center;gap:4px;margin-bottom:-1px;display:flex}.editor-tab{color:var(--color-text-muted);cursor:pointer;border-radius:var(--radius-sm) var(--radius-sm) 0 0;background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;gap:5px;margin-bottom:-2px;padding:7px 14px;font-size:13px;font-weight:500;transition:color .12s,border-color .12s;display:inline-flex}.editor-tab:hover{color:var(--color-text);background:var(--color-bg-muted,#f8fafc)}.editor-tab.active{color:var(--color-primary,#3b82f6);border-bottom-color:var(--color-primary,#3b82f6)}.editor-tab-hint{margin-left:8px;font-size:12px}.btn-fix-images{color:#92400e;border-radius:var(--radius-sm);cursor:pointer;background:#fefce8;border:1px solid #fbbf24;align-items:center;gap:5px;margin-left:auto;padding:4px 10px;font-size:12px;font-weight:500;transition:background .12s;display:inline-flex}.btn-fix-images:hover{background:#fef08a}.preview-frame-wrap{border:1px solid var(--color-border);border-radius:var(--radius-md);background:#e8edf2;flex-direction:column;align-items:center;gap:0;min-height:420px;padding:20px 0;display:flex;overflow:hidden}.preview-frame-inner{background:#fff;border-radius:4px;flex-direction:column;width:600px;max-width:100%;display:flex;overflow:hidden;box-shadow:0 2px 12px #0000001a}.preview-frame{background:#fff;border:none;width:600px;max-width:100%;height:600px;min-height:420px;display:block}.preview-empty{justify-content:center;align-items:center;min-height:200px;font-size:14px;display:flex}.template-html-textarea{border:1px solid var(--color-border);border-radius:var(--radius-md);resize:vertical;width:100%;min-height:240px;padding:12px;font-family:ui-monospace,monospace;font-size:13px}.editor-detected-vars{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.editor-detected-vars .form-label{margin-bottom:0;margin-right:4px}.variable-chips{flex-wrap:wrap;gap:6px;display:flex}.variable-chip{background:var(--color-bg-muted,#f1f5f9);color:var(--color-text);border-radius:var(--radius-sm);padding:4px 8px;font-family:ui-monospace,monospace;font-size:12px}.form-group-checkbox{margin-bottom:0}.checkbox-label{color:var(--color-text);cursor:pointer;align-items:center;gap:8px;font-size:14px;font-weight:400;display:flex}.checkbox-label input[type=checkbox]{width:auto;margin:0}.test-users-panel{margin-bottom:16px}.test-users-panel .form-label{margin-bottom:6px}.test-users-textarea{border:1px solid var(--color-border);border-radius:var(--radius-md);resize:vertical;width:100%;padding:10px 12px;font-family:ui-monospace,monospace;font-size:13px}.test-users-count{margin-top:6px;margin-bottom:0;font-size:12px}.variable-inputs-panel{margin-bottom:16px}.variable-inputs-hint{margin-top:2px;margin-bottom:10px;font-size:12px}.variable-inputs-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;display:grid}.variable-input-item label{color:var(--color-text-muted);font-family:ui-monospace,monospace;font-size:12px}.variable-input-item input{margin-top:4px}.test-send-results{margin-top:8px}.test-send-results .success-block{padding-top:16px}.test-send-result-list{margin:16px 0 0;padding:0;font-size:13px;list-style:none}.test-send-result-list li{border-bottom:1px solid var(--color-border);align-items:center;gap:8px;padding:6px 0;display:flex}.test-send-result-list li:last-child{border-bottom:none}.test-send-result-list .result-ok{color:var(--color-success-dark,#047857)}.test-send-result-list .result-fail{color:var(--color-danger)}.test-send-result-list .material-icons.sm{flex-shrink:0;font-size:18px}.url-fields-panel{border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.url-fields-empty{text-align:center;background:var(--color-bg-muted,#f8fafc);padding:24px 16px;font-size:13px}.url-fields-hint{background:var(--color-bg-muted,#f8fafc);border-bottom:1px solid var(--color-border);margin:0;padding:10px 14px;font-size:12px}.url-fields-list{flex-direction:column;display:flex}.url-field-row{border-bottom:1px solid var(--color-border);flex-direction:column;gap:6px;padding:12px 14px;display:flex}.url-field-row:last-child{border-bottom:none}.url-field-row-placeholder{background:#fffbeb}.url-field-placeholder-badge{color:#92400e;white-space:nowrap;background:#fef3c7;border:1px solid #fbbf24;border-radius:999px;flex-shrink:0;align-items:center;padding:1px 7px;font-size:11px;font-weight:600;display:inline-flex}.url-field-meta{align-items:center;gap:6px;display:flex}.url-field-icon{color:var(--color-text-muted);flex-shrink:0}.url-field-label{color:var(--color-text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:600;overflow:hidden}.url-field-controls{align-items:center;gap:8px;display:flex}.url-field-input{border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);background:#fff;flex:1;min-width:0;padding:6px 10px;font-family:ui-monospace,monospace;font-size:13px;transition:border-color .12s}.url-field-input:focus{border-color:var(--color-primary,#3b82f6);outline:none;box-shadow:0 0 0 2px #bfdbfe55}.track-toggle{cursor:pointer;white-space:nowrap;border:1px solid #0000;border-radius:999px;flex-shrink:0;align-items:center;gap:4px;padding:5px 10px;font-size:12px;font-weight:500;transition:background .12s,border-color .12s,color .12s,opacity .12s;display:inline-flex}.track-toggle-on{color:#fff;background:#16a34a;border-color:#15803d}.track-toggle-on:hover{background:#15803d;border-color:#166534}.track-toggle-off{color:#94a3b8;background:#f1f5f9;border-color:#cbd5e1;-webkit-text-decoration:line-through #94a3b8;text-decoration:line-through #94a3b8}.track-toggle-off .material-icons{opacity:.45}.track-toggle-off:hover{color:#64748b;background:#e2e8f0;border-color:#94a3b8;text-decoration:none}.assets-section{border-top:2px solid var(--color-border);margin-top:48px;padding-top:32px}.assets-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px;display:flex}.assets-header>div{flex:1;min-width:200px}.assets-header button{flex-shrink:0}.assets-title{color:var(--color-text);margin-bottom:4px;font-size:18px;font-weight:700;line-height:1.2}.asset-dropzone{border:2px dashed var(--color-border);border-radius:var(--radius-md);text-align:center;cursor:pointer;color:var(--color-text-muted);flex-direction:column;align-items:center;gap:6px;margin-bottom:16px;padding:28px 20px;font-size:14px;transition:border-color .15s,background .15s;display:flex}.asset-dropzone:hover,.asset-dropzone.drag-over{border-color:var(--color-primary,#3b82f6);background:#f0f7ff}.asset-dropzone.drag-over{background:#dbeafe}.assets-table{margin-top:8px}.asset-preview-cell{width:56px;padding:8px 10px}.asset-thumb{object-fit:contain;background:#f1f5f9;border-radius:4px;width:44px;height:44px;display:block}.asset-filename{white-space:nowrap;font-size:13px;font-weight:500}.asset-url-cell{max-width:300px}.asset-url{color:var(--color-text-muted);word-break:break-all;white-space:normal;font-family:ui-monospace,monospace;font-size:11px}.asset-actions-cell{white-space:nowrap}.sync-result-banner{background:var(--color-success-bg,#ecfdf5);border:1px solid var(--color-success-border,#a7f3d0);color:var(--color-text,#1e293b);border-radius:6px;align-items:center;gap:8px;margin-bottom:12px;padding:10px 12px;font-size:13px;display:flex}.sync-result-banner .icon-btn{margin-left:auto}.ticket-filters-row{justify-content:space-between;align-items:center}.ticket-filters-left{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.ticket-filters-right{flex-shrink:0;align-items:center;gap:12px;display:flex}@media (width<=768px){.ticket-filters-row{flex-direction:column;align-items:stretch}.ticket-filters-left,.ticket-filters-right{justify-content:space-between;width:100%}}.status-segmented{border:1px solid var(--color-border);background:#f1f5f9;border-radius:20px;gap:2px;padding:3px;display:inline-flex}.status-segment{color:var(--color-text-muted);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:999px;align-items:center;gap:6px;padding:6px 14px;font-size:13px;font-weight:500;transition:background .15s,color .15s,box-shadow .15s;display:inline-flex}.status-segment:hover{color:var(--color-text)}.status-segment-active{color:var(--color-text);background:#fff;font-weight:600;box-shadow:0 1px 2px #0f172a1f}.status-segment-count{min-width:18px;height:18px;color:var(--color-text-muted);background:#e2e8f0;border-radius:999px;justify-content:center;align-items:center;padding:0 5px;font-size:11px;font-weight:700;line-height:18px;display:inline-flex}.status-segment-active .status-segment-count{background:var(--color-primary);color:#fff}.status-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.status-dot-active{background:#16a34a;box-shadow:0 0 0 2px #16a34a26}.status-dot-cancelled{background:#dc2626;box-shadow:0 0 0 2px #dc262626}.status-dot-all{background:#94a3b8;box-shadow:0 0 0 2px #94a3b826}.status-cell{text-transform:capitalize;align-items:center;gap:7px;font-size:13px;display:inline-flex}.filters-meta{color:var(--color-text-muted);font-size:13px}.ticket-plus-one{color:var(--color-primary);font-weight:600}.ticket-row{cursor:pointer}.ticket-row:hover{background:#f8fafc}.ticket-row-editing,.ticket-row-editing:hover{background:#eef2ff}.ticket-inline-edit{width:min(760px,100vw - 96px)}.ticket-inline-edit .inline-edit-actions{justify-content:flex-start}.settings-card{margin-bottom:20px}.settings-info-box{border-radius:var(--radius-lg);color:#1e3a5f;background:#eff6ff;border:1px solid #bfdbfe;border-left:3px solid #3b82f6;align-items:flex-start;gap:10px;margin-bottom:20px;padding:14px 16px;font-size:13px;line-height:1.5;display:flex}.settings-info-box .material-icons{color:#3b82f6;flex-shrink:0;margin-top:1px}.settings-info-box strong{color:#17304d}.settings-info-box p{margin:6px 0 0}.settings-info-box code{background:#dbeafe;border-radius:3px;padding:1px 4px;font-size:12px}.settings-card-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px;display:flex}.settings-card-title{color:var(--color-text);margin-bottom:4px;font-size:16px;font-weight:700}.settings-card-actions{justify-content:flex-end;margin-top:16px;display:flex}.current-event-row{align-items:center;gap:14px;display:flex}.current-event-name{color:var(--color-text);font-size:15px;font-weight:600}.link-btn{color:var(--color-primary);cursor:pointer;background:0 0;border:none;margin:4px 0 12px;padding:0;font-size:13px;text-decoration:underline}.link-btn:hover{color:var(--color-primary-hover)}.save-success{color:var(--color-success-dark,#059669);margin-bottom:8px;font-size:13px}.check-list{flex-direction:column;gap:10px;margin-top:12px;display:flex}.check-row{border:1px solid var(--color-border);border-radius:8px;align-items:flex-start;gap:10px;padding:10px 12px;display:flex}.check-row.check-ok{background:#ecfdf5;border-color:#a7f3d0}.check-row.check-ok .material-icons{color:var(--color-success-dark,#059669)}.check-row.check-fail{background:#fef2f2;border-color:#fecaca}.check-row.check-fail .material-icons{color:var(--color-danger,#dc2626)}.check-label{color:var(--color-text);font-size:13px;font-weight:600}.check-detail{margin-top:2px;font-size:12px}:root{--color-primary:#6366f1;--color-primary-hover:#4f46e5;--color-primary-alt:#2563eb;--color-primary-alt-hover:#1d4ed8;--color-sidebar-bg:#1e293b;--color-sidebar-border:#0f172a;--color-sidebar-hover:#334155;--color-sidebar-input:#475569;--color-sidebar-text:#f8fafc;--color-sidebar-muted:#94a3b8;--color-page-bg:#f5f6fa;--color-surface:#fff;--color-border:#e2e8f0;--color-border-alt:#e0e0e0;--color-success:#10b981;--color-success-dark:#059669;--color-danger:#ef4444;--color-danger-hover:#dc2626;--color-warning:#f59e0b;--color-text:#111827;--color-text-alt:#222;--color-text-muted:#64748b;--color-text-muted-alt:#6b7280;--font-body:"Segoe UI", Arial, sans-serif;--font-mono:"Monaco", "Menlo", "Ubuntu Mono", monospace;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--sidebar-width:220px;--page-padding-top:28px;--page-padding-bottom:28px;--page-padding-left:32px;--page-padding-right:32px;--font-size-page-title:22px;--font-size-page-subtitle:13px;--font-size-table-cell:13.5px;--font-size-table-header:12px;--font-size-form-label:13px;--font-size-muted:13px;--table-cell-padding-y:13px;--table-cell-padding-x:16px;--table-header-padding-y:12px;--table-header-padding-x:16px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{overflow-x:clip}body{font-family:var(--font-body);background:var(--color-page-bg);color:var(--color-text);font-size:14px;line-height:1.6}a{color:var(--color-primary);text-decoration:none}a:hover{text-decoration:underline}.btn{border-radius:var(--radius-sm);font-size:14px;font-family:var(--font-body);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;border:none;justify-content:center;align-items:center;gap:6px;min-height:36px;padding:9px 18px;font-weight:600;line-height:1.4;text-decoration:none;transition:background .15s,color .15s,opacity .15s,box-shadow .15s;display:inline-flex}.btn:disabled{opacity:.55;cursor:not-allowed}.btn:focus{outline-offset:2px;outline:2px solid #0000}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover);box-shadow:0 2px 8px #6366f133}.btn-danger{background:var(--color-danger);color:#fff}.btn-danger:hover:not(:disabled){background:var(--color-danger-hover);box-shadow:0 2px 8px #ef444433}.btn-ghost{color:var(--color-text-muted);border:1px solid var(--color-border);background:0 0}.btn-ghost:hover:not(:disabled){background:var(--color-page-bg);color:var(--color-text);border-color:#cbd5e1}.btn-sm{min-height:32px;padding:6px 12px;font-size:13px}input,select,textarea{font-family:var(--font-body);color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);outline:none;width:100%;padding:10px 14px;font-size:15px;line-height:1.5;transition:border-color .15s,box-shadow .15s}input:hover,select:hover,textarea:hover{border-color:#cbd5e1}input:focus,select:focus,textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #6366f11a}label{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.02em;margin-bottom:6px;font-size:13px;font-weight:600;display:block}.form-group{flex-direction:column;margin-bottom:20px;display:flex}@media (width<=768px){input,select,textarea{padding:10px 14px;font-size:16px}.form-group{margin-bottom:16px}}.card{background:var(--color-surface);border-radius:var(--radius-lg);border:1px solid var(--color-border);padding:20px 24px;transition:box-shadow .15s,border-color .15s;box-shadow:0 1px 2px #00000005}.card:hover{box-shadow:0 2px 4px #0000000a}.badge{text-transform:uppercase;letter-spacing:.03em;border-radius:999px;padding:4px 11px;font-size:11px;font-weight:700;display:inline-block}.badge-pending{color:#92400e;background:#fef3c7}.badge-claimed{color:#065f46;background:#d1fae5}.badge-attended{color:#1e40af;background:#dbeafe}.badge-no_show{color:#991b1b;background:#fee2e2}.promo-redeemed{opacity:.55;text-decoration:line-through}.ticket-yes{color:#059669;font-size:20px}.icon-btn{cursor:pointer;border-radius:var(--radius-sm);color:var(--color-text-muted);-webkit-user-select:none;user-select:none;background:0 0;border:none;justify-content:center;align-items:center;min-width:32px;min-height:32px;padding:6px;transition:background .12s,color .12s;display:inline-flex}.icon-btn:hover{background:var(--color-page-bg);color:var(--color-text)}.icon-btn:disabled{opacity:.5;cursor:not-allowed}.icon-btn.icon-btn-danger:hover:not(:disabled){color:#dc2626;background:#fee2e2}.btn-danger-ghost{color:#dc2626;border-color:#0000}.btn-danger-ghost:hover:not(:disabled){background:#fee2e2;border-color:#fca5a5}.btn-danger-ghost:disabled{opacity:.5;cursor:not-allowed}.material-icons{font-size:20px}.material-icons.sm{font-size:16px}.material-icons.lg{font-size:24px}
