:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;padding:0;min-width:320px;min-height:100vh}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}}.login-container{display:flex;justify-content:center;align-items:center;min-height:100vh;background-color:#f0f2f5;padding:20px}.login-card{background:#fff;padding:40px;border-radius:8px;box-shadow:0 4px 12px #0000001a;width:100%;max-width:400px;text-align:center}.login-card h2{margin-bottom:24px;color:#1a73e8;font-family:Roboto,sans-serif}.form-group{margin-bottom:20px;text-align:left}.form-group label{display:block;margin-bottom:8px;color:#5f6368;font-weight:500;font-size:.9rem}.form-group input{width:100%;padding:12px;border:1px solid #dadce0;border-radius:4px;font-size:1rem;box-sizing:border-box;transition:border .2s}.form-group input:focus{border-color:#1a73e8;outline:none;box-shadow:0 0 0 2px #1a73e833}.login-btn{width:100%;padding:12px;background-color:#1a73e8;color:#fff;border:none;border-radius:4px;font-size:1rem;font-weight:700;cursor:pointer;transition:background-color .2s}.login-btn:hover{background-color:#1557b0}.login-btn:disabled{background-color:#a0c3ff;cursor:not-allowed}.notification{padding:10px;margin-bottom:15px;border-radius:4px;font-size:14px;text-align:center}.notification.error{background-color:#fce8e6;color:#d93025;border:1px solid #fad2cf}.notification.success{background-color:#e6f4ea;color:#1e8e3e;border:1px solid #ceead6}.spinner{display:inline-block;width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-radius:50%;border-top-color:#fff;animation:spin 1s ease-in-out infinite}@keyframes spin{to{transform:rotate(360deg)}}:root{--primary: #1a73e8;--primary-dark: #1557b0;--bg-color: #f8f9fa;--text-dark: #202124;--text-light: #5f6368;--success: #1e8e3e;--error: #d93025;--border: #dadce0}.dashboard-container{display:flex;flex-direction:column;min-height:100vh;background-color:var(--bg-color);font-family:Roboto,Segoe UI,sans-serif}.navbar{background-color:#fff;border-bottom:1px solid var(--border);padding:0 24px;height:64px;display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;z-index:100}.nav-brand{font-size:1.25rem;font-weight:600;color:var(--text-dark);display:flex;align-items:center;gap:8px}.badge{background-color:#e8f0fe;color:var(--primary);font-size:.75rem;padding:2px 8px;border-radius:4px}.nav-links{display:flex;gap:8px}.nav-item{background:none;border:none;color:var(--text-light);font-size:.95rem;padding:8px 16px;border-radius:4px;cursor:pointer;font-weight:500;transition:all .2s}.nav-item:hover{background-color:#f1f3f4;color:var(--text-dark)}.nav-item.active{background-color:#e8f0fe;color:var(--primary)}.nav-item.logout{color:var(--error);margin-left:12px}.nav-item.logout:hover{background-color:#fce8e6}.main-content{padding:32px;display:flex;justify-content:center}.content-box{background:#fff;padding:40px;border-radius:8px;box-shadow:0 1px 3px #0000001a;width:100%;max-width:600px}.content-box h2{margin-bottom:24px;color:var(--text-dark);font-size:1.5rem}.status-bar{padding:12px;border-radius:4px;margin-bottom:20px;font-size:.9rem;display:flex;align-items:center}.status-bar.success{background-color:#e6f4ea;color:var(--success);border:1px solid #ceead6}.status-bar.error{background-color:#fce8e6;color:var(--error);border:1px solid #fad2cf}.create-form{display:flex;flex-direction:column;gap:20px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.input-group{display:flex;flex-direction:column;gap:6px}.input-group label{font-size:.85rem;font-weight:500;color:var(--text-light)}.input-group input{padding:10px 12px;border:1px solid var(--border);border-radius:4px;font-size:1rem;transition:border-color .2s}.input-group input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 2px #1a73e833}.photo-upload input{border:1px dashed var(--border);padding:20px;background-color:#f8f9fa;cursor:pointer}.action-btn{background-color:var(--primary);color:#fff;border:none;padding:12px;border-radius:4px;font-size:1rem;font-weight:600;cursor:pointer;margin-top:10px;transition:background-color .2s}.action-btn:hover{background-color:var(--primary-dark)}.action-btn:disabled{background-color:#ccc;cursor:not-allowed}.placeholder-text{color:var(--text-light);font-style:italic;margin-top:20px}@media(max-width:600px){.navbar{flex-direction:column;height:auto;padding:12px;gap:12px}.nav-links{width:100%;justify-content:space-between;overflow-x:auto}.form-grid{grid-template-columns:1fr}.main-content{padding:16px}.content-box{padding:24px}}.home-screen{text-align:center;padding:40px;max-width:800px;margin:0 auto}.home-screen h1{font-size:2.5rem;color:var(--text-dark);margin-bottom:10px}.home-screen p{color:var(--text-light);margin-bottom:40px}.quick-actions{display:flex;justify-content:center;gap:20px;flex-wrap:wrap}.quick-btn{padding:20px 30px;font-size:1.1rem;background-color:#fff;border:1px solid var(--border);border-radius:8px;cursor:pointer;box-shadow:0 2px 5px #0000000d;transition:transform .2s,box-shadow .2s;min-width:160px}.quick-btn:hover{transform:translateY(-2px);box-shadow:0 5px 15px #0000001a;border-color:var(--primary);color:var(--primary)}.photo-section{margin-top:10px;border:1px dashed var(--border);padding:20px;border-radius:8px;background-color:#fafafa}.section-label{display:block;margin-bottom:15px;font-weight:500;color:var(--text-light)}.photo-options{display:flex;align-items:center;gap:15px}.or-divider{color:#999;font-size:.9rem}.secondary-btn{background-color:#fff;border:1px solid var(--border);padding:8px 16px;border-radius:4px;cursor:pointer;font-size:.95rem}.upload-btn-wrapper{position:relative;overflow:hidden;display:inline-block}.upload-btn-wrapper input[type=file]{font-size:100px;position:absolute;left:0;top:0;opacity:0;cursor:pointer}.camera-container{position:relative;width:100%;max-width:400px;margin:0 auto;background:#000;border-radius:8px;overflow:hidden}.camera-preview{width:100%;display:block}.capture-btn{position:absolute;bottom:20px;left:50%;transform:translate(-50%);width:60px;height:60px;border-radius:50%;background-color:#fff;border:4px solid rgba(0,0,0,.2);cursor:pointer}.capture-btn:active{background-color:#ddd}.close-camera-btn{position:absolute;top:10px;right:10px;background:#00000080;color:#fff;border:none;padding:5px 10px;border-radius:4px;cursor:pointer}.photo-preview-container{margin-top:15px;position:relative;display:inline-block}.photo-preview{height:150px;border-radius:4px;border:2px solid var(--primary)}.remove-photo{position:absolute;top:-10px;right:-10px;background:#d93025;color:#fff;border:none;width:24px;height:24px;border-radius:50%;cursor:pointer;font-weight:700}.icon-btn{background:#e8f0fe;border:1px solid #d2e3fc;border-radius:4px;width:42px;cursor:pointer;font-size:1.2rem;display:flex;align-items:center;justify-content:center}.icon-btn:hover{background-color:#d2e3fc}.digital-pass-card{border:2px solid var(--primary);border-radius:12px;overflow:hidden;max-width:350px;margin:20px auto;box-shadow:0 4px 15px #0000001a;background:#fff}.pass-header{background-color:var(--primary);color:#fff;padding:10px;text-align:center;font-weight:700;letter-spacing:1px}.pass-body{padding:20px;display:flex;flex-direction:column;align-items:center;text-align:center}.pass-photo{width:100px;height:100px;border-radius:50%;object-fit:cover;border:3px solid #eee;margin-bottom:10px}.pass-details h3{margin:5px 0;color:var(--text-dark)}.pass-details p{margin:2px 0;color:var(--text-light);font-size:.9rem}.pass-footer{border-top:1px dashed #ddd;padding:15px;text-align:center;background-color:#f9f9f9}.pass-qr{width:120px;height:120px}.qr-reader-box{width:100%;max-width:500px;margin:0 auto;border-radius:8px;overflow:hidden}.scan-result-container{text-align:center;padding:40px 20px;animation:fadeIn .5s ease-in}.success-icon,.error-icon{font-size:80px;margin-bottom:10px}.success-text{color:var(--success);font-size:2rem}.error-text{color:var(--error);font-size:2rem}.button-group{display:flex;gap:10px;justify-content:center;margin-top:20px;flex-wrap:wrap}.visitor-details-card{text-align:left;max-width:500px;margin:0 auto}.detail-photo{width:100%;height:250px;object-fit:cover;border-radius:8px;margin-bottom:20px}.detail-row{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid #eee}.detail-row .label{font-weight:500;color:var(--text-light)}.detail-row .value{font-weight:600;color:var(--text-dark)}.back-btn{background:none;border:none;color:var(--primary);font-weight:600;cursor:pointer;margin-bottom:15px}.full-width{width:100%;margin-top:20px}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media print{body *{visibility:hidden}#printablePass,#printablePass *{visibility:visible}#printablePass{position:absolute;left:0;top:0;width:100%}}.manual-entry-section{margin-top:20px;padding-top:15px;border-top:1px solid #eee;text-align:center}.manual-form{display:flex;gap:10px;justify-content:center;margin-top:10px}.manual-form input{padding:10px;border:1px solid var(--border);border-radius:4px;width:60%}.full-width-box{max-width:1000px!important}.pass-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px;margin-top:20px}.admin-pass-card{background:#f8f9fa;border:1px solid var(--border);border-radius:8px;padding:15px;display:flex;flex-direction:column;gap:10px;transition:box-shadow .2s}.admin-pass-card:hover{box-shadow:0 4px 10px #0000001a;background:#fff}.card-top{display:flex;align-items:center;gap:12px;border-bottom:1px solid #eee;padding-bottom:10px}.mini-photo{width:50px;height:50px;border-radius:50%;object-fit:cover;border:2px solid white;box-shadow:0 2px 4px #0000001a}.mini-details h4{margin:0 0 4px;font-size:1rem;color:var(--text-dark)}.id-badge{background-color:var(--primary);color:#fff;font-size:.75rem;padding:2px 6px;border-radius:4px}.card-body p{margin:4px 0;font-size:.9rem;color:var(--text-light)}.card-qr{text-align:center;margin-top:auto;padding-top:10px}.card-qr img{width:80px;height:80px;opacity:.8}@media(max-width:480px){.manual-form{flex-direction:column}.manual-form input{width:100%}}.admin-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;flex-wrap:wrap;gap:15px}.search-box{flex:1;max-width:300px}.search-input{width:100%;padding:10px 15px;border:1px solid var(--border);border-radius:20px;outline:none;font-size:.95rem;transition:border-color .2s,box-shadow .2s}.search-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #1a73e81a}.no-results{grid-column:1 / -1;text-align:center;padding:30px;color:var(--text-light);background-color:#f8f9fa;border-radius:8px}.info-grid p{margin:4px 0;font-size:.9rem;color:#444}.action-buttons{display:flex;justify-content:center;gap:10px;margin-top:20px;flex-wrap:wrap}@media print{.digital-pass-card{border:2px solid #000;box-shadow:none}}.admin-navbar{display:flex;gap:10px;margin-bottom:20px;border-bottom:1px solid var(--border);padding-bottom:10px}.admin-nav-btn{background:none;border:none;font-size:.9rem;padding:8px 16px;cursor:pointer;color:var(--text-light);border-radius:20px;transition:all .2s}.admin-nav-btn.active{background-color:var(--primary);color:#fff;font-weight:500}.admin-nav-btn:hover:not(.active){background-color:#f1f3f4}.admin-pass-card{cursor:pointer;position:relative}.admin-pass-card:active{transform:scale(.98)}.tap-hint{font-size:.75rem!important;color:var(--primary)!important;margin-top:8px!important;font-style:italic}.modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#0009;display:flex;justify-content:center;align-items:center;z-index:1000;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.modal-content{background:#fff;padding:30px;border-radius:12px;position:relative;max-width:90%;max-height:90vh;overflow-y:auto;box-shadow:0 10px 25px #0003;animation:popUp .3s cubic-bezier(.18,.89,.32,1.28)}.close-modal-btn{position:absolute;top:10px;right:15px;background:none;border:none;font-size:2rem;cursor:pointer;color:#666;line-height:1}.modal-actions{margin-top:20px;display:flex;justify-content:center}.download-btn{background-color:#e74c3c;width:100%;max-width:250px}@keyframes popUp{0%{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}.pass-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:15px;padding-bottom:40px}.admin-pass-card{background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:15px;display:flex;align-items:center;gap:15px;cursor:pointer;transition:transform .2s,box-shadow .2s}.admin-pass-card:hover{transform:translateY(-2px);box-shadow:0 5px 15px #00000014;border-color:var(--primary)}.card-left{flex-shrink:0}.list-photo{width:60px;height:60px;border-radius:50%;object-fit:cover;border:2px solid #f0f0f0}.card-right h4{margin:0 0 5px;color:var(--text-dark);font-size:1.1rem}.sub-text{margin:2px 0;color:var(--text-light);font-size:.9rem}.id-badge-sm{background-color:#e8f0fe;color:var(--primary);font-size:.75rem;padding:2px 6px;border-radius:4px;font-weight:600}.tap-hint{font-size:.75rem;color:var(--primary);margin-top:5px;font-weight:500}.load-more-btn{display:block;margin:20px auto;background-color:#fff;border:1px solid var(--border);padding:10px 20px;cursor:pointer;border-radius:20px;color:var(--text-light)}.load-more-btn:hover{background-color:#f9f9f9;color:var(--text-dark)}.digital-pass-card{background:#fff;border:1px solid #ddd;border-radius:10px;overflow:hidden;width:100%;max-width:400px;margin:0 auto 20px;box-shadow:0 2px 10px #0000001a}.pass-header{background:var(--primary);color:#fff;padding:12px;text-align:center;font-weight:700;letter-spacing:2px;text-transform:uppercase}.pass-body-horizontal{padding:20px;display:flex;flex-direction:column;align-items:center;text-align:center;border-bottom:1px dashed #eee}.pass-photo-lg{width:120px;height:120px;border-radius:8px;object-fit:cover;border:3px solid #fff;box-shadow:0 2px 8px #00000026;margin-bottom:15px}.pass-name{margin:5px 0;font-size:1.5rem;color:#333}.pass-id{color:var(--primary);font-weight:700;font-family:monospace;font-size:1.1rem;background:#f0f7ff;padding:2px 8px;border-radius:4px;display:inline-block;margin-bottom:10px}.pass-meta{display:flex;flex-direction:column;gap:5px;font-size:.95rem;color:#555}.pass-footer{padding:15px;display:flex;align-items:center;justify-content:space-between;background:#fafafa}.pass-footer p{font-size:.8rem;color:#999;font-weight:700;letter-spacing:1px}.pass-footer-qr{width:60px;height:60px}.qr-only-box{width:150px;padding:10px;background:#fff;border:1px solid black;position:absolute;left:-9999px;top:0}.modal-actions-row{display:flex;gap:15px;justify-content:center}.stats-row{display:flex;gap:20px;margin-bottom:30px;flex-wrap:wrap}.stat-card{background:#fff;padding:20px;border-radius:8px;flex:1;min-width:150px;box-shadow:0 2px 5px #0000000d;border:1px solid #eee;text-align:center}.stat-card h3{margin:0;font-size:.9rem;color:#777}.stat-card p{margin:10px 0 0;font-size:1.8rem;font-weight:700;color:var(--primary)}.filters{display:flex;gap:10px;flex-wrap:wrap}.date-input{padding:8px;border:1px solid #ccc;border-radius:4px}.clear-btn{background:none;border:1px solid #ccc;cursor:pointer;padding:8px;border-radius:4px}.input-select{padding:10px;border:1px solid #ddd;border-radius:4px;background:#fff;width:100%}.pass-badge{font-size:.7rem;padding:2px 6px;border-radius:4px;text-transform:uppercase;font-weight:700}.pass-badge.general{background:#e0e0e0;color:#555}.pass-badge.vip{background:gold;color:#5c4d00}.pass-badge.staff{background:#e8f0fe;color:var(--primary)}.pass-header.general{background-color:var(--primary)}.pass-header.vip{background-color:#f1c40f;color:#000}.pass-header.staff{background-color:#2c3e50}.card-actions{margin-left:auto;display:flex;flex-direction:column;gap:5px}.icon-action-btn{background:none;border:1px solid #eee;border-radius:50%;width:32px;height:32px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1.1rem;transition:all .2s}.icon-action-btn:hover{background-color:#f0f0f0}.icon-action-btn.delete:hover{background-color:#fee;border-color:red}.modal-split{display:flex;gap:30px;flex-wrap:wrap}.history-section{flex:1;min-width:250px;border-left:1px solid #eee;padding-left:20px}.log-list{max-height:300px;overflow-y:auto;margin-bottom:20px}.log-item{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid #f9f9f9;font-size:.9rem}.log-status{color:green;font-weight:500}.no-logs{color:#999;font-style:italic}@media(max-width:700px){.modal-split{flex-direction:column}.history-section{border-left:none;padding-left:0;border-top:1px solid #eee;padding-top:20px}}.qr-only-box{width:200px;padding:15px;background:#fff;border:2px solid black;text-align:center;position:fixed;left:-9999px;top:0}.time-filters{display:flex;gap:5px;align-items:center}.time-input{padding:8px;border:1px solid #ccc;border-radius:4px}.log-details{display:flex;flex-direction:column}.log-time{font-size:.8rem;color:#666}.action-buttons-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:20px;max-width:400px;margin-left:auto;margin-right:auto}.new-btn{grid-column:1 / -1;margin-top:10px}.print-btn{background-color:#34495e;color:#fff;border:none}.print-btn:hover{background-color:#2c3e50}.qr-reader-wrapper{position:relative;width:100%;max-width:400px;margin:0 auto;background:#000;border-radius:8px;overflow:hidden}#reader video{object-fit:cover;border-radius:8px}.scanner-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.torch-btn{background-color:transparent;border:1px solid #ccc;border-radius:20px;padding:5px 15px;cursor:pointer;font-size:.9rem;font-weight:500;transition:all .2s}.torch-btn.active{background-color:gold;color:#000;border-color:#e6c200;box-shadow:0 0 10px #ffd70080}.torch-btn:hover{background-color:#f0f0f0}.torch-btn.active:hover{background-color:#ffdb1a}.scanner-overlay{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.scanner-line{width:100%;height:2px;background:red;box-shadow:0 0 4px red;position:absolute;animation:scanMove 2s infinite linear}@keyframes scanMove{0%{top:0}50%{top:100%}to{top:0}}.camera-control-bar{margin-bottom:15px;display:flex;justify-content:center}.qr-reader-wrapper{position:relative;width:100%;max-width:500px;height:auto;min-height:300px;margin:0 auto;background:#000;border-radius:8px;overflow:hidden}#reader video{width:100%!important;height:auto!important;object-fit:cover;border-radius:8px;display:block}.active-torch{background-color:gold!important;color:#000!important;border-color:#e6c200!important;font-weight:700}.scanner-overlay{position:absolute;inset:0;pointer-events:none;z-index:10}.scanner-line{width:100%;height:3px;background:#ff0000b3;box-shadow:0 0 4px red;position:absolute;animation:scanMove 2.5s infinite linear}@keyframes scanMove{0%{top:10%;opacity:0}10%{opacity:1}90%{opacity:1}to{top:90%;opacity:0}}.permissions-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin:20px 0;background:#f8f9fa;padding:15px;border-radius:8px}.toggle-label{display:flex;align-items:center;gap:10px;cursor:pointer;font-size:.95rem;padding:10px;background:#fff;border:1px solid #ddd;border-radius:4px;transition:all .2s}.toggle-label:hover{border-color:var(--primary)}.toggle-label input[type=checkbox]{width:18px;height:18px;cursor:pointer}.user-list{display:flex;flex-direction:column;gap:10px}.user-card{background:#fff;border:1px solid #eee;padding:15px;border-radius:8px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px}.role-badge{background:#eee;font-size:.75rem;padding:2px 6px;border-radius:4px;margin-left:8px;text-transform:uppercase}.perm-tags{display:flex;gap:5px;flex-wrap:wrap}.perm-tags span{font-size:.75rem;background:#e8f0fe;color:var(--primary);padding:2px 8px;border-radius:10px}.perm-tags span.red{background:#fee;color:red}@media(max-width:600px){.permissions-grid{grid-template-columns:1fr}.user-card{flex-direction:column;align-items:flex-start}.perm-tags{margin-top:5px}}.user-header{display:flex;justify-content:space-between;align-items:center;width:100%;margin-bottom:10px;flex-wrap:wrap;gap:10px}.user-identity{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.user-actions{display:flex;gap:5px}.icon-btn-sm{padding:5px 10px;font-size:.8rem;border-radius:4px;border:1px solid #ddd;background:#fff;cursor:pointer}.icon-btn-sm:hover{background:#f0f0f0}.icon-btn-sm.delete:hover{background:#ffebee;color:red;border-color:red}.icon-btn-sm.block:hover{background:#fff3e0;color:orange;border-color:orange}.role-badge.super{background:purple;color:#fff}.blocked-badge{background:#000;color:#fff;font-size:.7rem;padding:2px 5px;border-radius:4px;font-weight:700}.blocked-user{background-color:#f5f5f5;opacity:.7;border-style:dashed!important}.edit-mode-box{width:100%;background:#f9f9ff;padding:10px;border-radius:8px;border:1px solid #d2e3fc}.permissions-grid.compact{grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:5px;margin:10px 0}.permissions-grid.compact .toggle-label{padding:5px;font-size:.8rem}.edit-actions{display:flex;gap:10px;margin-top:10px}.role-selector{margin:15px 0}.super-toggle{background:#f3e5f5;border:1px solid purple;color:purple;font-weight:700}.fields-list{display:flex;flex-direction:column;gap:10px;margin-bottom:30px}.field-row{display:flex;align-items:center;background:#fff;padding:10px 15px;border:1px solid #ddd;border-radius:8px;gap:15px}.field-row.system-field{background:#f8f9fa;border-color:#eee}.field-order{background:#eee;width:25px;height:25px;display:flex;align-items:center;justify-content:center;border-radius:50%;font-size:.8rem;font-weight:700;color:#666}.field-info{flex:1;display:flex;align-items:center;gap:10px}.field-type{background:#e8f0fe;color:var(--primary);font-size:.75rem;padding:2px 6px;border-radius:4px;text-transform:uppercase}.req-badge{color:red;font-size:.75rem;font-weight:700}.field-actions{display:flex;gap:5px}.field-actions button{background:#fff;border:1px solid #ccc;cursor:pointer;border-radius:4px;padding:5px 10px}.delete-btn{color:red;border-color:#fcc!important;background:#fff5f5!important}.add-field-box{background:#f1f3f4;padding:20px;border-radius:8px;margin-top:20px}.add-field-grid{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:10px}.add-field-grid input[type=text],.add-field-grid select{padding:10px;border:1px solid #ccc;border-radius:4px;flex:1}.meta-row{display:block;font-size:.9rem;color:#444;margin-bottom:4px}.gujarat-pass-card{width:100%;max-width:500px;border:3px solid #000;padding:5px;background:#fff;font-family:sans-serif;position:relative;margin:0 auto;color:#000;box-sizing:border-box}.pass-header-section{display:flex;align-items:center;border-bottom:2px solid #000;padding-bottom:5px;margin-bottom:5px;gap:10px}.header-logo{width:70px;height:70px;object-fit:contain}.header-text{flex:1;text-align:center;line-height:1.2}.police-title{font-size:1.6rem;font-weight:900;text-transform:uppercase;letter-spacing:1px;margin:0}.event-title{font-size:1.1rem;font-weight:700;color:#d32f2f;margin:4px 0}.pass-type-badge{background:#000;color:#fff;padding:4px 12px;border-radius:15px;font-size:.9rem;font-weight:700;display:inline-block}.dates-row{display:flex;justify-content:space-between;align-items:center;border:2px solid #000;padding:5px 10px;font-weight:800;font-size:.95rem;margin-bottom:10px;background:#f2f2f2}.pass-content-grid{display:flex}.pass-details-list.full-width{width:100%;display:flex;flex-direction:column;gap:5px;font-size:.95rem}.detail-row{display:flex;border-bottom:1px dotted #999;padding-bottom:2px}.detail-label{width:130px;font-weight:700;flex-shrink:0}.detail-value{font-weight:600;flex:1;word-break:break-word}.pass-footer-section{margin-top:5px;border-top:2px solid #000;padding-top:5px;display:flex;justify-content:space-between;align-items:flex-start}.instructions{font-size:.7rem;color:#c00;font-weight:700;width:65%;line-height:1.2}.signature-block{text-align:center;width:30%;font-weight:700;font-size:.85rem}.pass-bottom-stripe{display:flex;justify-content:space-between;align-items:center;margin-top:10px;padding-top:5px;border-top:1px dashed #ccc}.footer-small-logo{width:50px;height:50px;object-fit:contain;margin-left:10px}.footer-qr-container{flex:1;display:flex;justify-content:flex-end;padding-right:10px}.footer-qr-img{width:70px;height:70px}:root{--bg-dark: #1e1e1e;--bg-panel: #f4f4f4;--border: #ddd;--accent: #1a73e8;--accent-hover: #1557b0;--text: #333}.studio-container{display:flex;height:85vh;border:1px solid #ccc;background-color:var(--bg-dark);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;position:relative;overflow:hidden;width:100%}.studio-toast{position:absolute;top:20px;left:50%;transform:translate(-50%);background:#333;color:#fff;padding:10px 20px;border-radius:20px;z-index:9999;box-shadow:0 4px 15px #0000004d;font-size:.9rem}.studio-toast.success{background:#0f9d58}.studio-toast.error{background:#d93025}.studio-sidebar{width:250px;background:var(--bg-panel);display:flex;flex-direction:column;z-index:50;flex-shrink:0}.studio-sidebar.left{border-right:1px solid var(--border)}.studio-sidebar.right{border-left:1px solid var(--border);width:280px}.sidebar-header{padding:12px 15px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;background:#fff}.sidebar-header h4{margin:0;font-size:.8rem;text-transform:uppercase;color:#666;letter-spacing:.5px}.sidebar-divider{height:1px;background:var(--border);margin:10px 0}.tools-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:15px}.tool-btn{background:#fff;border:1px solid #ccc;border-radius:6px;padding:12px 5px;display:flex;flex-direction:column;align-items:center;gap:6px;cursor:pointer;font-size:.75rem;color:#555;transition:all .2s}.tool-btn:hover{border-color:var(--accent);color:var(--accent);background:#e8f0fe;box-shadow:0 2px 5px #0000000d}.tool-btn .icon{font-size:1.2rem}.mini-btn{border:none;background:var(--accent);color:#fff;width:20px;height:20px;border-radius:4px;cursor:pointer;display:flex;align-items:center;justify-content:center}.field-creator-panel{background:#e3f2fd;padding:10px;margin:0 10px 10px;border-radius:6px;border:1px solid #90caf9;display:flex;flex-direction:column;gap:6px}.field-creator-panel input,.field-creator-panel select{padding:5px;border:1px solid #90caf9;border-radius:4px;font-size:.85rem}.add-confirm-btn{background:var(--accent);color:#fff;border:none;padding:6px;border-radius:4px;cursor:pointer;font-size:.8rem;margin-top:5px}.fields-list-scroll{flex:1;overflow-y:auto;padding:10px;display:flex;flex-direction:column;gap:6px}.field-item{background:#fff;border:1px solid #ddd;padding:8px 10px;border-radius:4px;cursor:grab;display:flex;align-items:center;gap:10px;font-size:.85rem;color:#444;transition:border .2s}.field-item:hover{border-color:var(--accent)}.field-type-badge{background:#eee;color:#777;width:18px;height:18px;border-radius:3px;display:flex;align-items:center;justify-content:center;font-size:.65rem;font-weight:700}.studio-workspace{flex:1;display:flex;flex-direction:column;background:#252525;position:relative;min-width:0}.workspace-toolbar{height:44px;background:#fff;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 15px;flex-shrink:0}.toolbar-group{display:flex;align-items:center;gap:5px}.v-divider{width:1px;height:20px;background:#ddd;margin:0 5px}.icon-btn{width:30px;height:30px;border:1px solid transparent;background:transparent;border-radius:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1.1rem;color:#555}.icon-btn:hover:not(:disabled){background:#f0f0f0}.icon-btn.active{background:#e8f0fe;color:var(--accent);border-color:#d2e3fc}.icon-btn:disabled{opacity:.3;cursor:default}.zoom-label{font-size:.85rem;color:#666;margin-right:10px;font-variant-numeric:tabular-nums}.save-btn{background:var(--accent);color:#fff;border:none;padding:6px 18px;border-radius:15px;font-weight:600;font-size:.85rem;cursor:pointer}.save-btn:disabled{opacity:.7}.canvas-scroller{flex:1;overflow:auto;display:grid;place-items:center;padding:50px;background-image:radial-gradient(#444 1px,transparent 1px);background-size:20px 20px}.print-canvas{background:#fff;box-shadow:0 0 30px #00000080;position:relative;overflow:hidden;transform-origin:center center;transition:width .3s,height .3s}.print-canvas.grid-bg{background-size:10px 10px;background-image:linear-gradient(to right,#f0f0f0 1px,transparent 1px),linear-gradient(to bottom,#f0f0f0 1px,transparent 1px)}.canvas-element{position:absolute;box-sizing:border-box;display:flex;align-items:center;justify-content:center;cursor:grab;-webkit-user-select:none;user-select:none;white-space:nowrap}.canvas-element:active{cursor:grabbing}.canvas-element.selected{z-index:100!important}.selected-border{position:absolute;inset:0;border:1px solid var(--accent);pointer-events:none}.resize-handle{width:8px;height:8px;background:#fff;border:1px solid var(--accent);position:absolute;bottom:-5px;right:-5px;cursor:se-resize;z-index:101;pointer-events:auto}.text-content{width:100%;height:100%;overflow:hidden;pointer-events:none}.el-img{width:100%;height:100%;object-fit:cover;pointer-events:none}.qr-mock{width:100%;height:100%;background:repeating-linear-gradient(45deg,#eee,#eee 5px,#fff 5px 10px);display:flex;align-items:center;justify-content:center;font-size:.7rem;color:#999;border:1px solid #ccc}.prop-tabs{display:flex;border-bottom:1px solid var(--border);background:#fff}.tab-btn{flex:1;background:none;border:none;padding:12px;font-size:.85rem;font-weight:600;color:#666;cursor:pointer;border-bottom:2px solid transparent}.tab-btn.active{color:var(--accent);border-bottom-color:var(--accent);background:#f9f9f9}.tab-btn:disabled{opacity:.4;cursor:not-allowed}.prop-content{flex:1;overflow-y:auto;background:#fff}.prop-section{padding:15px;display:flex;flex-direction:column;gap:15px}.prop-header{font-weight:700;color:var(--accent);font-size:.8rem;letter-spacing:.5px;margin-bottom:5px}.prop-empty{padding:30px 20px;text-align:center;color:#999;font-style:italic;font-size:.9rem}.prop-group{display:flex;flex-direction:column;gap:6px}.prop-group label{font-size:.75rem;font-weight:600;color:#555}.prop-group input[type=text]{padding:6px;border:1px solid #ccc;border-radius:4px;font-size:.85rem}.prop-divider{font-size:.7rem;font-weight:700;color:#999;text-transform:uppercase;border-bottom:1px solid #eee;padding-bottom:4px;margin-top:5px}.prop-row{display:flex;gap:10px}.prop-col{flex:1;display:flex;flex-direction:column;gap:4px}.prop-col label{font-size:.7rem;color:#777}.prop-col input,.prop-col select{padding:5px;border:1px solid #ddd;border-radius:4px;font-size:.85rem;width:100%;box-sizing:border-box}.color-row{display:flex;align-items:center;gap:5px}.color-row input{flex:1;height:30px;padding:2px;border:1px solid #ddd;cursor:pointer}.text-btn{background:none;border:1px solid #ccc;border-radius:4px;font-size:.75rem;padding:5px 8px;cursor:pointer}.delete-btn{margin-top:15px;background:#fff;border:1px solid #ffcdd2;color:#c62828;padding:10px;border-radius:4px;font-weight:600;cursor:pointer;transition:background .2s}.delete-btn:hover{background:#ffebee}.hint-text{margin-top:20px;font-size:.8rem;color:#888;text-align:center;line-height:1.4}.prop-spacer{flex:1}.qr-settings-wrapper{display:flex;gap:20px;align-items:flex-start;flex-wrap:wrap}.qr-settings-box{flex:2;background:#fff;padding:20px;border-radius:8px;min-width:300px;border:1px solid #e0e0e0}.qr-preview-panel{flex:1;background:#f8f9fa;padding:20px;border-radius:8px;border:1px solid #d2e3fc;min-width:250px;position:sticky;top:20px}.qr-preview-panel h4{margin-top:0;color:#1a73e8;border-bottom:1px solid #d2e3fc;padding-bottom:10px}.health-meter-box{margin-bottom:20px;background:#fff;padding:10px;border-radius:6px;border:1px solid #eee}.health-track{height:10px;background:#e0e0e0;border-radius:5px;margin:5px 0;overflow:hidden}.health-fill{height:100%;transition:width .3s ease,background-color .3s ease}.preview-canvas-box{text-align:center;background:#fff;padding:15px;border-radius:8px;box-shadow:0 2px 5px #0000000d;margin-bottom:15px;position:relative}.qr-preview-img{width:100%;max-width:200px;image-rendering:pixelated}.logo-badge{font-size:.7rem;background:#e8f0fe;color:#1a73e8;display:inline-block;padding:2px 8px;border-radius:10px;margin-top:5px}.raw-data-box{background:#222;color:#0f0;padding:10px;border-radius:4px;font-family:monospace;font-size:.75rem;max-height:150px;overflow-y:auto}.raw-data-box h5{margin:0 0 5px;color:#ccc}.raw-data-box pre{margin:0;white-space:pre-wrap;word-break:break-all}.scan-tip{font-size:.8rem;font-style:italic;color:#666;margin-top:15px;background:#fff3e0;padding:10px;border-radius:4px;border-left:3px solid #ffb74d}.qr-hint{color:#666;font-size:.9rem;margin-bottom:20px;background:#f8f9fa;padding:10px;border-left:4px solid #1a73e8}.qr-table-header{display:flex;font-weight:700;color:#555;padding:10px 15px;border-bottom:2px solid #eee;background:#f1f3f4}.qr-fields-list{display:flex;flex-direction:column;margin-bottom:20px;border:1px solid #eee}.qr-field-row{display:flex;align-items:center;padding:12px 15px;border-bottom:1px solid #f0f0f0;transition:background .2s}.active-row{background-color:#e8f0fe}.system-row{background-color:#f5f5f5;opacity:.8}.col-enable{width:15%;text-align:center}.col-field{width:55%;font-weight:500}.col-key{width:30%}.key-input{width:60px;padding:8px;border:1px solid #ccc;border-radius:4px;text-align:center;font-weight:700;font-family:monospace;text-transform:uppercase}.switch{position:relative;display:inline-block;width:40px;height:22px}.switch input{opacity:0;width:0;height:0}.slider{position:absolute;cursor:pointer;inset:0;background-color:#ccc;transition:.4s;border-radius:22px}.slider:before{position:absolute;content:"";height:16px;width:16px;left:3px;bottom:3px;background-color:#fff;transition:.4s;border-radius:50%}input:checked+.slider{background-color:#1a73e8}input:checked+.slider:before{transform:translate(18px)}@media(max-width:800px){.qr-settings-wrapper{flex-direction:column}.qr-preview-panel{width:100%;position:static;box-sizing:border-box}}.settings-container{padding:20px;background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a}.settings-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px;border-bottom:2px solid #f0f0f0;padding-bottom:20px}.settings-header h2{margin:0;color:#333}.last-updated{margin:5px 0 0;font-size:.85rem;color:#888}.refresh-btn{background:#1a73e8;color:#fff;border:none;padding:10px 20px;border-radius:20px;cursor:pointer;font-weight:700;transition:background .2s}.refresh-btn:hover{background:#1557b0}.refresh-btn:disabled{background:#ccc;cursor:wait}.usage-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px;margin-bottom:40px}.usage-card{border:1px solid #e0e0e0;padding:20px;border-radius:12px;background:#fafafa}.usage-icon{width:40px;height:40px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:1.5rem;margin-bottom:15px}.db-icon{background:#e8f0fe}.store-icon{background:#fff3e0}.func-icon{background:#e6fffa}.usage-card h3{margin:0 0 15px;font-size:1rem;color:#555}.stat-row{display:flex;justify-content:space-between;margin-bottom:8px;font-size:.9rem}.progress-bar-bg{background:#e0e0e0;height:8px;border-radius:4px;overflow:hidden;margin-bottom:10px}.progress-bar-fill{height:100%;transition:width .5s ease}.mini-stats{display:flex;justify-content:space-between;font-size:.75rem;color:#888}.section-title{color:#444;margin-bottom:20px;border-left:4px solid #1a73e8;padding-left:10px}.metrics-row{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin-bottom:30px}.metric-box{text-align:center;padding:15px;background:#fff;border:1px solid #eee;border-radius:8px;box-shadow:0 2px 5px #00000008}.metric-box h4{margin:0 0 5px;font-size:.8rem;color:#777;font-weight:400}.metric-box p{margin:0;font-size:1.5rem;font-weight:700;color:#222}.metric-box small{font-size:.7rem;color:#aaa}.info-box{background:#e3f2fd;padding:15px;border-radius:6px;font-size:.85rem;color:#0d47a1}@media(max-width:600px){.metrics-row{grid-template-columns:1fr 1fr}}.audit-container{background:#fff;border-radius:8px;border:1px solid #e0e0e0;padding:20px;max-width:900px;margin:0 auto}.audit-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;border-bottom:2px solid #f0f0f0;padding-bottom:10px}.audit-header h3{margin:0;color:#333}.refresh-btn-sm{background:none;border:1px solid #ccc;padding:5px 12px;border-radius:4px;cursor:pointer;font-size:.85rem}.refresh-btn-sm:hover{background:#f5f5f5}.audit-list{display:flex;flex-direction:column;gap:10px;max-height:500px;overflow-y:auto}.audit-item{display:flex;justify-content:space-between;align-items:center;padding:12px;background:#f9f9f9;border-radius:6px;border:1px solid #eee}.audit-left{display:flex;align-items:center;gap:15px}.audit-meta{display:flex;flex-direction:column}.audit-user{font-weight:600;font-size:.9rem;color:#444}.audit-time{font-size:.75rem;color:#888}.audit-details{font-size:.9rem;color:#555;text-align:right;max-width:50%}.audit-badge{font-size:.7rem;font-weight:700;padding:3px 8px;border-radius:4px;text-transform:uppercase;min-width:80px;text-align:center}.badge-red{background:#ffebee;color:#c62828}.badge-dark-red{background:#ffcdd2;color:#b71c1c;border:1px solid #ef9a9a}.badge-green{background:#e8f5e9;color:#2e7d32}.badge-gray{background:#eee;color:#666}.empty-logs{text-align:center;color:#999;padding:20px;font-style:italic}
