:root{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{margin:0;padding:0;min-width:320px;min-height:100vh}#root{width:100%;min-height:100vh}*{box-sizing:border-box;margin:0;padding:0}:root{--ios-blue: #4A55A2;--ios-bg: #F8F9FA;--ios-card: #FFFFFF;--ios-label: #1E1E24;--ios-secondary: #71717A;--ios-separator: #E4E4E7;--ios-red: #E11D48;--ios-green: #10B981;--ios-amber: #F59E0B}.app{min-height:100vh;background:var(--ios-bg);font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased;color:var(--ios-label)}.home-container{max-width:400px;margin:0 auto;padding:80px 20px 0;display:flex;flex-direction:column;align-items:center;gap:24px}.home-title{text-align:center}.home-title h1{font-size:38px;font-weight:800;letter-spacing:-.5px;color:#3b426e;line-height:1.2}.subtitle{font-size:15px;color:var(--ios-secondary);margin-top:4px}.stats-card{width:100%;padding:14px 16px;text-align:center}.action-card{width:100%}.ios-action-btn{display:block;width:100%;padding:0;height:52px;background:none;border:none;font-size:16px;font-weight:500;color:var(--ios-blue);cursor:pointer;font-family:inherit;transition:background-color .2s ease,opacity .2s}.ios-action-btn:hover:not(:disabled){background-color:#4a55a20d}.ios-action-btn:disabled{color:var(--ios-secondary);cursor:not-allowed;opacity:.5}.flow-container{max-width:700px;margin:0 auto;padding:20px 40px 40px;display:flex;flex-direction:column;gap:8px}.flow-container-camera{max-width:1180px;padding-left:32px;padding-right:32px}.extract-container{max-width:860px;margin:0 auto;padding:20px 24px 40px;display:flex;flex-direction:column;gap:12px}.extract-back-row{display:flex;align-items:center;margin-bottom:-4px}.extract-header{display:flex;align-items:center;gap:16px;margin-bottom:4px}.extract-header .section-label{flex:1}.extract-header-action{min-width:126px;justify-content:center}.extract-header .extract-header-action{background:#ffffffb8!important;border:1px solid rgba(200,200,200,.45)!important;box-shadow:0 4px 14px #0000000f,inset 0 2px 3px #fff!important;backdrop-filter:blur(16px)!important;-webkit-backdrop-filter:blur(16px)!important;border-radius:999px!important;color:#1a1a1a!important;font-size:14px!important;font-weight:600!important;padding:10px 22px!important;transition:all .2s ease!important}.extract-header .extract-header-action:hover:not(:disabled){background:#ffffffe0!important;transform:translateY(-2px)!important;box-shadow:0 8px 20px #0000001a,inset 0 2px 4px #fff!important}.extract-header .extract-header-action:active:not(:disabled){transform:translateY(1px)!important;box-shadow:0 2px 4px #0000000d,inset 0 2px 2px #ffffffe6!important}.extract-header .extract-header-action-danger{color:var(--ios-red)!important}.extract-toolbar-actions{display:flex;align-items:center;gap:14px}.extract-toolbar-link,.extract-toolbar-link:hover:not(:disabled),.extract-toolbar-link:active:not(:disabled){background:none!important;border:none!important;box-shadow:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;border-radius:0!important;color:var(--ios-label)!important;font-size:16px!important;font-weight:500!important;padding:0!important;transform:none!important}.extract-toolbar-link:hover:not(:disabled){color:var(--ios-blue)!important}.ios-btn-extract{background:var(--ios-blue);color:#fff;border:none;border-radius:8px;padding:8px 20px;font-size:14px;font-weight:600;letter-spacing:.3px;cursor:pointer;font-family:inherit;transition:background-color .2s,transform .1s;white-space:nowrap}.ios-btn-extract:disabled{background:var(--ios-secondary);opacity:.5;cursor:not-allowed}.ios-btn-extract:hover:not(:disabled){background:#3c4585;transform:translateY(-1px)}.ios-btn-extract:active:not(:disabled){transform:translateY(0)}.extract-card{overflow:visible}.events-list{max-height:calc(100vh - 280px);overflow-y:auto}.extract-pagination{display:flex;align-items:center;justify-content:center;gap:16px;padding:12px 16px;border-top:.5px solid var(--ios-separator)}.camera-layout{display:grid;grid-template-columns:minmax(0,820px) minmax(280px,320px);gap:24px;align-items:start;justify-content:center;width:100%}.camera-left,.camera-right{display:flex;flex-direction:column;gap:8px;min-width:0}.camera-left{width:100%;max-width:820px}.image-grid-vertical{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.back-btn{background:none;border:none;color:var(--ios-blue);font-size:17px;cursor:pointer;padding:8px 0;font-family:inherit;align-self:flex-start;margin-bottom:8px}.section-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--ios-secondary);padding-left:4px;margin-top:12px;margin-bottom:4px}.ios-card{background:var(--ios-card);border-radius:12px;overflow:hidden;border:1px solid var(--ios-separator);box-shadow:0 4px 12px #00000008,0 1px 3px #00000005}.separator{height:.5px;background:var(--ios-separator);margin-left:16px}.form-group{padding:10px 16px;border-bottom:.5px solid var(--ios-separator)}.form-group:last-child{border-bottom:none}.form-group label{display:block;font-size:11px;font-weight:500;color:var(--ios-secondary);text-transform:uppercase;letter-spacing:.3px;margin-bottom:3px}.form-group input{width:100%;border:none;background:transparent;color:var(--ios-label);font-size:16px;font-family:inherit;outline:none;padding:2px 0}.form-group input::placeholder{color:#c7c7cc}.form-group input:disabled{opacity:.4}.form-row{display:grid;grid-template-columns:1fr 1fr}.form-row .form-group:first-child{border-right:.5px solid var(--ios-separator);border-bottom:none}.ios-btn-primary{width:100%;height:52px;background:var(--ios-blue);color:#fff;border:none;border-radius:13px;font-size:17px;font-weight:600;cursor:pointer;font-family:inherit;margin-top:24px;transition:opacity .2s}.ios-btn-primary:hover:not(:disabled){opacity:.85}.ios-btn-primary:disabled{opacity:.4;cursor:not-allowed}.ios-text-link{display:inline-block;color:var(--ios-blue);background:transparent;border:none;font-size:17px;font-weight:600;cursor:pointer;font-family:inherit;margin-top:24px;padding:8px 16px;text-decoration:none;transition:opacity .2s}.ios-text-link:hover{opacity:.7}.video-container{position:relative;width:100%;aspect-ratio:4/3;min-height:280px;max-height:min(58vh,560px);background:#000;border-radius:10px;overflow:hidden}.video-container video{width:100%;height:100%;object-fit:cover;display:none}.video-container video.active{display:block}.camera-placeholder{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:#8e8e93;text-align:center;font-size:15px}.face-guide{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:180px;height:220px;border:2px solid rgba(0,122,255,.7);border-radius:50%;pointer-events:none}.capture-indicator{position:absolute;top:12px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:6px;background:#ff3b30e6;color:#fff;padding:5px 12px;border-radius:20px;font-size:13px;font-weight:600}.pulse{width:8px;height:8px;background:#fff;border-radius:50%;animation:pulse 1s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}.progress-bar{height:4px;background:var(--ios-separator);border-radius:2px;margin-top:10px;overflow:hidden}.progress-fill{height:100%;background:var(--ios-blue);border-radius:2px;transition:width .3s}.camera-controls{display:flex;justify-content:center;gap:12px;margin-top:14px}.btn{padding:10px 24px;border:none;border-radius:20px;font-size:15px;font-weight:600;cursor:pointer;font-family:inherit;transition:opacity .2s}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-primary{background:var(--ios-blue);color:#fff}.btn-warning{background:var(--ios-amber);color:#fff}.image-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.preview-image{aspect-ratio:1;border-radius:6px;overflow:hidden;background:var(--ios-bg);border:.5px solid var(--ios-separator);position:relative}.preview-image img{width:100%;height:100%;object-fit:cover}.preview-image.empty{display:flex;align-items:center;justify-content:center;color:#c7c7cc;font-size:1.1rem}.image-number{position:absolute;bottom:2px;right:3px;background:#00000080;color:#fff;font-size:9px;padding:1px 4px;border-radius:3px}.extract-select-all{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:.5px solid var(--ios-separator)}.link-btn{background:none;border:none;color:var(--ios-blue);font-size:14px;cursor:pointer;font-family:inherit}.event-row{display:flex;align-items:center;gap:12px;padding:14px 16px;cursor:pointer;transition:background .15s}.event-row:hover{background:#00000008}.ios-checkbox{width:16px;height:16px;accent-color:var(--ios-blue);cursor:pointer;flex-shrink:0}.event-info{flex:1}.event-name{display:block;font-size:16px;color:var(--ios-label)}.event-count{display:block;font-size:13px;color:var(--ios-secondary);margin-top:1px}.chevron{color:var(--ios-secondary);font-size:18px}.users-under-event{background:var(--ios-bg);border-top:.5px solid var(--ios-separator)}.user-sub-row{display:grid;grid-template-columns:2fr 1.5fr auto;gap:8px;padding:10px 16px 10px 48px;border-bottom:.5px solid var(--ios-separator);font-size:14px;align-items:center}.user-sub-row:last-child{border-bottom:none}.user-name{color:var(--ios-label);font-weight:500}.user-ticket{color:var(--ios-secondary)}.user-emb{color:#c7c7cc;font-size:12px;text-align:right}.message{padding:10px 16px;border-radius:10px;font-size:14px;font-weight:500;text-align:center;margin-bottom:4px}.message.success{background:#34c7591f;color:#1a7a34}.message.error{background:#ff3b301a;color:var(--ios-red)}.message.info{background:#007aff14;color:var(--ios-blue)}.tbl-card{background:var(--ios-card);border-radius:13px;border:.5px solid var(--ios-separator);overflow:hidden}.tbl-toolbar{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:.5px solid var(--ios-separator)}.tbl-title{font-size:14px;font-weight:600;color:var(--ios-label)}.tbl{width:100%;border-collapse:collapse;font-size:14px}.tbl thead tr{background:var(--ios-bg);border-bottom:.5px solid var(--ios-separator)}.tbl th{padding:8px 14px;text-align:left;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.4px;color:var(--ios-secondary)}.tbl td{padding:7px 14px;border-bottom:.5px solid var(--ios-separator);color:var(--ios-label);vertical-align:middle}.tbl tbody tr:last-child td{border-bottom:none}.tbl tbody tr:hover:not(.tbl-expanded-row){background:#00000005}.tbl-row-active{background:#007aff0a!important}.tbl-num{color:var(--ios-secondary);font-size:12px;width:40px}.tbl-muted{color:var(--ios-secondary)}.tbl-center{text-align:center;color:var(--ios-secondary);padding:2rem!important}.tbl-ev-name{font-weight:500;cursor:pointer;color:var(--ios-blue)}.tbl-ev-name:hover{text-decoration:underline}.tbl-expand-btn{background:none;border:none;cursor:pointer;color:var(--ios-secondary);font-size:12px;padding:4px 8px}.tbl-empty{background:var(--ios-card);border-radius:13px;border:.5px solid var(--ios-separator);padding:2rem;text-align:center;color:var(--ios-secondary);font-size:15px}.tbl-pagination{display:flex;align-items:center;justify-content:center;gap:8px;padding:10px 16px;border-top:.5px solid var(--ios-separator)}.page-btn{background:var(--ios-bg);border:.5px solid var(--ios-separator);border-radius:6px;min-width:32px;height:32px;font-size:15px;cursor:pointer;color:var(--ios-blue);display:flex;align-items:center;justify-content:center;padding:0 8px}.page-btn:disabled{color:var(--ios-separator);cursor:not-allowed}.page-info{font-size:13px;color:var(--ios-secondary);min-width:110px;text-align:center}.detail-page{display:flex;flex-direction:column;height:100vh;max-width:860px;margin:0 auto;padding:0 24px}.detail-back-row{display:flex;align-items:center;padding-top:20px;margin-bottom:-4px}.detail-header{display:flex;align-items:center;gap:16px;padding:20px 0 12px;flex-shrink:0;border-bottom:.5px solid var(--ios-separator)}.detail-table-wrap{flex:1;overflow-y:auto;background:var(--ios-card);border-left:.5px solid var(--ios-separator);border-right:.5px solid var(--ios-separator);border-top:.5px solid var(--ios-separator);border-radius:13px 13px 0 0;margin-top:16px}.detail-table-wrap .tbl thead{position:sticky;top:0;z-index:1}.detail-footer{flex-shrink:0;background:var(--ios-card);border:.5px solid var(--ios-separator);border-top:none;border-radius:0 0 13px 13px;margin-bottom:16px}.frame-counter{display:flex;flex-direction:column;align-items:center;padding:20px 0 8px}.frame-count-num{font-size:48px;font-weight:700;color:var(--ios-blue);line-height:1}.frame-count-label{font-size:13px;color:var(--ios-secondary);margin-top:4px}.capture-idle-hint{padding:20px 8px;text-align:center;font-size:13px;color:var(--ios-secondary);line-height:1.6}@media(max-width:700px){.flow-container,.flow-container-camera,.extract-container{padding:16px}.camera-layout{grid-template-columns:1fr}.image-grid-vertical{grid-template-columns:repeat(7,1fr)}.form-row{grid-template-columns:1fr}.form-row .form-group:first-child{border-right:none;border-bottom:.5px solid var(--ios-separator)}}button,.ios-action-btn,.ios-text-link,.ios-btn-primary,.ios-btn-extract,.btn,.back-btn,.page-btn,.link-btn,.tbl-expand-btn{background:#fff9!important;border:1px solid rgba(200,200,200,.4)!important;box-shadow:0 4px 14px #0000000f,inset 0 2px 3px #fff!important;backdrop-filter:blur(16px)!important;-webkit-backdrop-filter:blur(16px)!important;border-radius:100px!important;color:#1a1a1a!important;font-weight:600!important;transition:all .2s ease!important;cursor:pointer!important;text-decoration:none!important}.ios-action-btn,.ios-text-link,.ios-btn-primary,.ios-btn-extract,.btn{padding:10px 24px!important;height:auto!important;display:inline-flex!important;align-items:center!important;justify-content:center!important}button:hover:not(:disabled),.ios-action-btn:hover:not(:disabled),.ios-text-link:hover:not(:disabled),.ios-btn-primary:hover:not(:disabled),.ios-btn-extract:hover:not(:disabled),.btn:hover:not(:disabled),.back-btn:hover:not(:disabled),.page-btn:hover:not(:disabled),.link-btn:hover:not(:disabled),.tbl-expand-btn:hover:not(:disabled){background:#ffffffd9!important;transform:translateY(-2px)!important;box-shadow:0 8px 20px #0000001a,inset 0 2px 4px #fff!important}button:active:not(:disabled),.ios-action-btn:active:not(:disabled),.ios-text-link:active:not(:disabled){transform:translateY(1px)!important;box-shadow:0 2px 4px #0000000d,inset 0 2px 2px #ffffffe6!important}button:disabled,.ios-action-btn:disabled,.ios-text-link:disabled,.ios-btn-primary:disabled{opacity:.5!important;cursor:not-allowed!important;transform:none!important}.action-card .separator{display:none!important}.action-card .ios-action-btn{margin-bottom:16px!important;box-shadow:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}.action-card .ios-action-btn:last-child{margin-bottom:0!important}.action-card .ios-action-btn:hover:not(:disabled),.action-card .ios-action-btn:active:not(:disabled){box-shadow:none!important}.back-btn,.back-btn:hover:not(:disabled),.back-btn:active:not(:disabled){background:none!important;border:none!important;box-shadow:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;border-radius:0!important;transform:none!important;padding:8px 0!important;color:var(--ios-blue)!important}.ios-card.action-card{background:transparent!important;border:none!important;box-shadow:none!important;border-radius:0!important;padding:0!important;width:100%}button,.ios-action-btn,.ios-text-link,.ios-btn-primary,.ios-btn-extract,.btn,.back-btn,.page-btn,.link-btn,.tbl-expand-btn{font-size:15px!important;letter-spacing:-.2px!important}.ios-action-btn,.ios-text-link,.ios-btn-primary,.ios-btn-extract,.btn{padding:12px 28px!important}
