@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";.enhanced-registration-container{min-height:100vh;display:grid;place-items:center;padding:1rem;background:linear-gradient(135deg,#0f172a,#1e293b,#0c1220,#1e293b,#0f172a),radial-gradient(ellipse 800px 600px at var(--mouse-x, 50%) var(--mouse-y, 50%),rgba(212,175,55,.15) 0%,transparent 50%),radial-gradient(ellipse 600px 400px at calc(100% - var(--mouse-x, 50%)) calc(100% - var(--mouse-y, 50%)),rgba(184,134,11,.2) 0%,transparent 60%),radial-gradient(ellipse 1000px 800px at var(--mouse-x, 50%) var(--mouse-y, 50%),rgba(59,130,246,.08) 0%,transparent 70%);background-size:100% 100%,150% 150%,120% 120%,180% 180%;transition:background-position .3s ease-out;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;position:relative}.registration-panel{width:100%;max-width:400px;border-radius:16px;background:linear-gradient(145deg,#fefbf5f2,#faf5ebe6);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(240,230,210,.6);box-shadow:0 20px 40px #00000026,0 8px 16px #0000001a,inset 0 1px #fffcf5cc;padding:2rem;margin:0 auto;position:relative;overflow:hidden}.registration-panel:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(59,130,246,.3),transparent)}.logo-section{text-align:center;margin-bottom:1.5rem}.logo-section img{width:280px;height:auto;max-width:100%;cursor:pointer;transition:transform .3s ease,filter .3s ease}.logo-section img:hover{transform:scale(1.1) translateZ(10px);filter:drop-shadow(0 8px 16px rgba(0,0,0,.2))}.form-header{text-align:center;margin-bottom:2rem}.form-header h1{font-size:1.5rem;font-weight:700;color:#4a5568;margin:0}.enhanced-form{padding:0;max-width:100%;width:100%;margin:0}.form-row{display:grid;grid-template-columns:1fr;gap:.75rem;margin-bottom:.75rem}.form-group{display:flex;flex-direction:column;margin-bottom:.75rem}.input-wrapper{position:relative}.inline-char-counter{position:absolute;right:12px;top:50%;transform:translateY(-50%);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.75rem;color:#718096;background:#fefbf5e6;padding:2px 6px;border-radius:4px;pointer-events:none;z-index:2}.enhanced-input{width:100%;height:44px;background:#fff!important;border:1px solid rgba(200,200,200,.5);border-radius:8px;padding:0 60px 0 12px;font-size:14px;font-family:inherit;color:#374151!important;transition:all .2s ease;box-sizing:border-box;outline:none}.enhanced-input::placeholder{color:#6b7280b3}.enhanced-input:-webkit-autofill,.enhanced-input:-webkit-autofill:hover,.enhanced-input:-webkit-autofill:focus,.enhanced-input:-webkit-autofill:active{-webkit-box-shadow:0 0 0 30px white inset!important;-webkit-text-fill-color:#374151!important;background-color:#fff!important;background:#fff!important}.enhanced-input:-moz-autofill,.enhanced-input:-moz-autofill-preview{background-color:#fff!important;color:#374151!important}.enhanced-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.enhanced-input.checking{border-color:#f59e0b;box-shadow:0 0 0 3px #f59e0b1a}.enhanced-input.success{border-color:#10b981;box-shadow:0 0 0 3px #10b9811a}.enhanced-input.error{border-color:#ef4444;box-shadow:0 0 0 3px #ef44441a}select.enhanced-input{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3e%3c/svg%3e");background-position:right .5rem center;background-repeat:no-repeat;background-size:1.5em 1.5em}.field-status{position:absolute;right:.75rem;width:1rem;height:1rem;border-radius:50%;display:grid;place-items:center;font-size:.75rem;font-weight:600;top:50%;transform:translateY(-50%)}.field-status.success{background:#dcfce7;color:#16a34a}.field-status.error{background:#fef2f2;color:#dc2626}.field-status.checking{background:#fef3c7;color:#d97706}.spinner{width:.9rem;height:.9rem;border:2px solid #d1d5db;border-top:2px solid #f59e0b;border-radius:50%;animation:spin 1s linear infinite}.field-error{margin-top:.25rem;padding:.5rem .75rem;border-radius:6px;background:#fef2f2;border:1px solid #fecaca;display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:#dc2626}.field-error .error-code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.75rem;font-weight:600;background:#dc26261a;padding:.125rem .375rem;border-radius:4px;border:1px solid rgba(220,38,38,.2)}.mobile-input-wrapper{display:flex;align-items:center;border:1px solid rgba(200,180,150,.4);border-radius:8px;background:#fefbf5cc;height:44px;transition:all .2s ease;overflow:hidden;box-sizing:border-box;position:relative}.mobile-input-wrapper:focus-within{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.country-code-display{padding:0 12px;min-width:60px;text-align:center;background:#faf5eb99;border-right:1px solid rgba(200,180,150,.3);color:#718096;font-weight:500;font-size:14px;height:44px;display:flex;align-items:center;justify-content:center;box-sizing:border-box}.mobile-number-input{flex:1;border:none;background:#fefbf5cc;padding:0 60px 0 12px;font-size:14px;font-family:inherit;color:#374151;outline:none;height:44px;box-sizing:border-box}.status-feedback-box{margin:1.5rem 0;border-radius:8px;background:#fff;border:1px solid #e5e7eb;box-shadow:0 1px 3px #0000001a;overflow:hidden}.status-messages{display:grid;gap:.5rem;padding:1rem;max-height:200px;overflow-y:auto}.status-message{position:relative;padding:.75rem 1rem .75rem 2.5rem;border-radius:6px;font-size:.875rem;line-height:1.4}.status-message:before{content:"";position:absolute;left:.75rem;top:50%;transform:translateY(-50%);width:8px;height:8px;border-radius:50%}.status-message.error{background:#fef2f2;border:1px solid #fecaca;color:#dc2626}.status-message.error:before{background:#dc2626}.status-message.success{background:#f0fdf4;border:1px solid #bbf7d0;color:#16a34a}.status-message.success:before{background:#16a34a}.status-message.warning{background:#fffbeb;border:1px solid #fed7aa;color:#d97706}.status-message.warning:before{background:#d97706}.status-message.info{background:#eff6ff;border:1px solid #bfdbfe;color:#2563eb}.status-message.info:before{background:#2563eb}.status-code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.75rem;font-weight:600;opacity:.8;margin-left:.5rem}.enhanced-submit-btn{width:100%;height:48px;margin-top:1.5rem;font-family:inherit;font-weight:600;font-size:1rem;color:#fff;background:linear-gradient(135deg,#3b82f6,#1d4ed8);border:none;border-radius:8px;box-shadow:0 4px 6px -1px #0000001a;cursor:pointer;transition:all .2s ease}.enhanced-submit-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 8px -1px #00000026}.enhanced-submit-btn:active:not(:disabled){transform:translateY(0)}.enhanced-submit-btn:disabled{opacity:.6;cursor:not-allowed;transform:none;box-shadow:0 1px 3px #0000001a}.form-footer{text-align:center;margin-top:2rem;padding-top:1.5rem;border-top:1px solid #e5e7eb}.login-link{font-size:.875rem;color:#3b82f6;text-decoration:none;font-weight:500;transition:color .2s ease}.login-link:hover{color:#1d4ed8;text-decoration:underline}@media(max-width:768px){.registration-panel{margin:1rem;padding:1.5rem}.form-header h1{font-size:1.25rem}.form-row{grid-template-columns:1fr}}.registration-panel.is-loading{pointer-events:none}.registration-panel.is-loading:after{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,#3b82f6,transparent);animation:loading 1.5s ease-in-out infinite}@keyframes loading{0%{transform:translate(-100%)}to{transform:translate(100%)}}.remember-me-label{display:flex;align-items:center;gap:.5rem;cursor:pointer;margin:.5rem 0}.remember-me-label input[type=checkbox]{width:16px;height:16px;accent-color:#3b82f6;cursor:pointer}.remember-me-text{color:#64748b;font-size:14px;-webkit-user-select:none;user-select:none}.loading-spinner{display:flex;align-items:center;justify-content:center;padding:2rem;color:#64748b;font-size:14px}.enhanced-input:disabled,.mobile-number-input:disabled,select:disabled{background:#f0f0f0cc!important;color:#9ca3af!important;cursor:not-allowed!important;opacity:.7;border-color:#c8c8c880!important}.mobile-input-wrapper:has(.mobile-number-input:disabled){background:#f0f0f0cc!important;border-color:#c8c8c880!important;opacity:.7}.mobile-input-wrapper:has(.mobile-number-input:disabled) .country-code-display{background:#e6e6e6cc!important;color:#9ca3af!important}.enhanced-submit-btn:disabled{background:#c8c8c8cc!important;color:#9ca3af!important;cursor:not-allowed!important;opacity:.7}@media print{.enhanced-registration-container{background:#fff}.registration-panel{background:#fff;border:1px solid #ccc;box-shadow:none}.enhanced-input{background:#fff;border:1px solid #ccc}}.unified-dashboard{min-height:100vh;background:linear-gradient(135deg,#1a1a2e,#16213e,#0f3460);color:#fff;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif}.dashboard-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem 2rem;background:#ffffff0d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid rgba(255,255,255,.1)}.header-left h1{margin:0 0 .5rem;font-size:1.8rem;font-weight:600;background:linear-gradient(135deg,gold,#ffed4e);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.user-info{font-size:.9rem;color:#ffffffb3}.logout-btn{padding:.75rem 1.5rem;background:linear-gradient(135deg,#dc3545,#c82333);color:#fff;border:none;border-radius:8px;font-weight:500;cursor:pointer;transition:all .3s ease}.logout-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #dc35454d}.dashboard-nav{display:flex;gap:1rem;padding:1rem 2rem;background:#0003;border-bottom:1px solid rgba(255,255,255,.1)}.nav-btn{padding:.75rem 1.5rem;background:#ffffff1a;color:#fffc;border:1px solid rgba(255,255,255,.2);border-radius:8px;font-weight:500;cursor:pointer;transition:all .3s ease}.nav-btn:hover{background:#ffffff26;color:#fff;transform:translateY(-1px)}.nav-btn.active{background:linear-gradient(135deg,gold,#ffed4e);color:#1a1a2e;border-color:gold;box-shadow:0 4px 12px #ffd7004d}.nav-btn.disabled,.nav-btn:disabled{background:#6c757d4d;color:#fff6;border-color:#6c757d4d;cursor:not-allowed;transform:none}.nav-btn.disabled:hover,.nav-btn:disabled:hover{background:#6c757d4d;color:#fff6;transform:none}.dashboard-content{padding:2rem;min-height:calc(100vh - 200px)}.search-module{max-width:100%}.search-controls{background:#ffffff0d;padding:1.5rem;border-radius:12px;margin-bottom:1.5rem;border:1px solid rgba(255,255,255,.1)}.search-bar{display:flex;gap:1rem;margin-bottom:1rem}.search-input{flex:1;padding:.75rem 1rem;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:8px;color:#fff;font-size:1rem}.search-input::placeholder{color:#ffffff80}.search-input:focus{outline:none;border-color:gold;box-shadow:0 0 0 2px #ffd70033}.search-btn,.advanced-search-btn,.export-btn,.print-btn{padding:.75rem 1.5rem;background:linear-gradient(135deg,#007bff,#0056b3);color:#fff;border:none;border-radius:8px;font-weight:500;cursor:pointer;transition:all .3s ease;white-space:nowrap}.search-btn:hover,.advanced-search-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #007bff4d}.export-btn{background:linear-gradient(135deg,#28a745,#1e7e34)}.export-btn:hover{box-shadow:0 4px 12px #28a7454d}.export-btn:disabled{background:#ffffff1a;color:#ffffff80;cursor:not-allowed;transform:none;box-shadow:none}.print-btn{background:linear-gradient(135deg,#6f42c1,#5a32a3)}.print-btn:hover{box-shadow:0 4px 12px #6f42c14d}.search-actions{display:flex;gap:1rem;flex-wrap:wrap}.advanced-search-panel{background:#0003;padding:1.5rem;border-radius:8px;margin-top:1rem;border:1px solid rgba(255,255,255,.1)}.advanced-search-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:1rem}.search-field{display:flex;flex-direction:column;gap:.5rem}.search-field label{font-size:.9rem;font-weight:500;color:#fffc}.search-field select,.search-field input{padding:.5rem;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:6px;color:#fff;font-size:.9rem}.search-field select:focus,.search-field input:focus{outline:none;border-color:gold;box-shadow:0 0 0 2px #ffd70033}.clear-search-btn{padding:.5rem 1rem;background:#dc3545cc;color:#fff;border:none;border-radius:6px;cursor:pointer;transition:all .3s ease}.clear-search-btn:hover{background:#dc3545}.results-section{background:#ffffff0d;border-radius:12px;overflow:hidden;border:1px solid rgba(255,255,255,.1)}.table-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;background:#0003;border-bottom:1px solid rgba(255,255,255,.1)}.results-info{font-size:.9rem;color:#fffc}.table-controls label{display:flex;align-items:center;gap:.5rem;font-size:.9rem;color:#fffc}.table-controls select{padding:.25rem .5rem;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:4px;color:#fff}.certificates-table{overflow-x:auto}.certificates-table table{width:100%;border-collapse:collapse}.certificates-table th,.certificates-table td{padding:1rem;text-align:left;border-bottom:1px solid rgba(255,255,255,.1)}.certificates-table th{background:#0000004d;font-weight:600;color:#ffffffe6;position:sticky;top:0;z-index:10}.certificates-table th.sortable{cursor:pointer;transition:background-color .2s ease}.certificates-table th.sortable:hover{background:#ffd7001a}.certificates-table tr:hover{background:#ffffff0d}.certificates-table tr.selected{background:#ffd7001a}.cert-id{font-family:Monaco,Menlo,monospace;font-weight:600;color:gold}.status-badge,.validation-badge{display:inline-block;padding:.25rem .5rem;border-radius:4px;font-size:.75rem;font-weight:600;text-transform:uppercase;margin-right:.5rem}.status-badge.active{background:#28a745cc;color:#fff}.status-badge.draft{background:#ffc107cc;color:#1a1a2e}.status-badge.inactive{background:#6c757dcc;color:#fff}.validation-badge.approved{background:#28a745cc;color:#fff}.validation-badge.pending{background:#ffc107cc;color:#1a1a2e}.validation-badge.rejected{background:#dc3545cc;color:#fff}.action-btn{padding:.5rem .75rem;margin-right:.5rem;border:none;border-radius:4px;font-size:.8rem;cursor:pointer;transition:all .2s ease}.view-btn{background:#007bffcc;color:#fff}.view-btn:hover{background:#007bff;transform:translateY(-1px)}.public-btn{background:#6f42c1cc;color:#fff}.public-btn:hover{background:#6f42c1;transform:translateY(-1px)}.details-row{background:#0000004d!important}.certificate-details{padding:1.5rem;background:#ffffff0d;border-radius:8px;border:1px solid rgba(255,255,255,.1);max-width:100%;overflow-x:auto}.details-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;padding-bottom:1rem;border-bottom:2px solid rgba(255,215,0,.3)}.certificate-details h4{margin:0;color:gold;font-size:1.4rem;font-weight:600}.cert-id-badge{background:linear-gradient(135deg,gold,#ffed4e);color:#000;padding:.5rem 1rem;border-radius:20px;font-weight:700;font-size:.9rem;letter-spacing:1px;box-shadow:0 2px 8px #ffd7004d}.details-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:1.5rem}.details-section{background:#ffffff08;border-radius:8px;border:1px solid rgba(255,255,255,.1);overflow:hidden}.section-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;background:#ffffff0d;cursor:pointer;transition:all .2s ease;border-bottom:1px solid rgba(255,255,255,.1)}.section-header:hover{background:#ffffff14}.section-header h5{margin:0;color:#4a9eff;font-size:1rem;font-weight:600;display:flex;align-items:center;gap:.5rem}.collapse-icon{font-size:.8rem;color:#fff9;transition:transform .2s ease}.collapse-icon.collapsed{transform:rotate(-90deg)}.section-content{padding:1.25rem}.detail-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:1rem}.detail-row:last-child{margin-bottom:0}.detail-item{display:flex;flex-direction:column;gap:.5rem}.detail-item.full-width{grid-column:1 / -1}.detail-item label{font-size:.85rem;font-weight:600;color:#ffffffb3;text-transform:uppercase;letter-spacing:.5px}.detail-item .detail-value{font-size:.95rem;color:#ffffffe6;font-weight:500;word-break:break-word}.detail-value.uuid-text{font-family:Courier New,monospace;font-size:.8rem;color:#fff9;word-break:break-all}.detail-value.gemstone-type{color:#4a9eff;font-weight:600}.detail-value.metal-type{color:gold;font-weight:600}.detail-value.weight-value{color:#28a745;font-weight:600}.details-table{width:100%;border-collapse:collapse;background:#ffffff08;border-radius:6px;overflow:hidden;border:1px solid rgba(255,255,255,.1)}.details-table tbody tr{border-bottom:1px solid rgba(255,255,255,.05)}.details-table tbody tr:last-child{border-bottom:none}.details-table tbody tr:hover{background:#ffffff0d}.detail-label{padding:.75rem 1rem;font-weight:600;color:#ffffffe6;background:#ffffff05;width:25%;vertical-align:top;font-size:.9rem;border-right:1px solid rgba(255,255,255,.1)}.detail-value{padding:.75rem 1rem;color:#fffc;font-size:.9rem;vertical-align:top;word-break:break-word}.detail-value a{color:#4a9eff;text-decoration:none;transition:color .2s ease}.detail-value a:hover{color:#6bb6ff;text-decoration:underline}.image-link{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:#4a9eff1a;border:1px solid rgba(74,158,255,.3);border-radius:4px;transition:all .2s ease}.image-link:hover{background:#4a9eff33;border-color:#4a9eff80;transform:translateY(-1px)}.media-actions{display:flex;gap:1rem;flex-wrap:wrap;align-items:center}.media-actions .action-btn,.media-actions .image-link{padding:.6rem 1.2rem;font-size:.85rem;font-weight:600;border-radius:6px;transition:all .2s ease;display:inline-flex;align-items:center;gap:.5rem;text-decoration:none}.media-actions .action-btn:hover,.media-actions .image-link:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000004d}.details-actions{display:flex;gap:1rem;flex-wrap:wrap}.details-actions .action-btn{padding:.75rem 1.5rem;font-size:.9rem;font-weight:600;border-radius:6px;transition:all .2s ease;display:inline-flex;align-items:center;gap:.5rem}.details-actions .action-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000004d}.details-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1rem}.detail-item{display:flex;flex-direction:column;gap:.25rem}.detail-item strong{color:#fffc;font-size:.9rem}.detail-item a{color:gold;text-decoration:none}.detail-item a:hover{text-decoration:underline}.pagination{display:flex;justify-content:center;align-items:center;gap:1rem;padding:1.5rem;background:#0003}.pagination-btn{padding:.5rem 1rem;background:#ffffff1a;color:#fff;border:1px solid rgba(255,255,255,.2);border-radius:6px;cursor:pointer;transition:all .2s ease}.pagination-btn:hover:not(:disabled){background:#fff3;transform:translateY(-1px)}.pagination-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.pagination-info{color:#fffc;font-weight:500}.loading-spinner{text-align:center;padding:3rem;color:#ffffffb3;font-size:1.1rem}.module-placeholder{text-align:center;padding:3rem;background:#ffffff0d;border-radius:12px;border:1px solid rgba(255,255,255,.1)}.module-placeholder h2{color:gold;margin-bottom:1rem}.module-placeholder ul{text-align:left;max-width:400px;margin:1rem auto}.module-placeholder li{margin-bottom:.5rem;color:#fffc}.admin-module{max-width:100%}.admin-module h2{color:gold;margin-bottom:2rem;text-align:center}.admin-stats{background:#ffffff0d;padding:1.5rem;border-radius:12px;margin-bottom:2rem;border:1px solid rgba(255,255,255,.1)}.admin-stats h3{color:#ffffffe6;margin-bottom:1rem}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.stat-card{background:#0000004d;padding:1.5rem;border-radius:8px;text-align:center;border:1px solid rgba(255,255,255,.1)}.stat-value{font-size:1.3rem;font-weight:700;color:gold;margin-bottom:.5rem}.stat-label{color:#ffffffb3;font-size:.9rem}.pending-users{background:#ffffff0d;padding:1.5rem;border-radius:12px;border:1px solid rgba(255,255,255,.1)}.pending-users h3{color:#ffffffe6;margin-bottom:1rem}.users-table{overflow-x:auto}.users-table table{width:100%;border-collapse:collapse}.users-table th,.users-table td{padding:1rem;text-align:left;border-bottom:1px solid rgba(255,255,255,.1)}.users-table th{background:#0000004d;font-weight:600;color:#ffffffe6}.approve-btn{background:#28a745cc;color:#fff;border:none;padding:.5rem 1rem;border-radius:4px;cursor:pointer;margin-right:.5rem;transition:all .2s ease}.approve-btn:hover{background:#28a745;transform:translateY(-1px)}.reject-btn{background:#dc3545cc;color:#fff;border:none;padding:.5rem 1rem;border-radius:4px;cursor:pointer;transition:all .2s ease}.reject-btn:hover{background:#dc3545;transform:translateY(-1px)}@media(max-width:768px){.dashboard-header{flex-direction:column;gap:1rem;text-align:center}.dashboard-nav{flex-direction:column;gap:.5rem}.search-bar,.search-actions{flex-direction:column}.advanced-search-grid{grid-template-columns:1fr}.table-header{flex-direction:column;gap:1rem}.stats-grid,.details-grid{grid-template-columns:1fr}}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.search-module,.create-module,.admin-module{animation:fadeIn .3s ease-out}.certificates-table::-webkit-scrollbar,.users-table::-webkit-scrollbar{height:8px}.certificates-table::-webkit-scrollbar-track,.users-table::-webkit-scrollbar-track{background:#ffffff1a;border-radius:4px}.certificates-table::-webkit-scrollbar-thumb,.users-table::-webkit-scrollbar-thumb{background:#ffd70080;border-radius:4px}.certificates-table::-webkit-scrollbar-thumb:hover,.users-table::-webkit-scrollbar-thumb:hover{background:#ffd700b3}.user-management{margin-top:2rem;padding:1.5rem;background:#ffffff0d;border-radius:12px;border:1px solid rgba(255,255,255,.1)}.refresh-btn{padding:.5rem 1rem;background:#007bffcc;color:#fff;border:none;border-radius:6px;cursor:pointer;transition:all .3s ease}.refresh-btn:hover{background:#007bff;transform:translateY(-1px)}.enable-btn{padding:.4rem .8rem;background:#28a745cc;color:#fff;border:none;border-radius:4px;cursor:pointer;margin-right:.5rem;font-size:.85rem;transition:all .3s ease}.enable-btn:hover{background:#28a745;transform:translateY(-1px)}.disable-btn{padding:.4rem .8rem;background:#dc3545cc;color:#fff;border:none;border-radius:4px;cursor:pointer;margin-right:.5rem;font-size:.85rem;transition:all .3s ease}.disable-btn:hover{background:#dc3545;transform:translateY(-1px)}.role-badge{padding:.25rem .5rem;border-radius:4px;font-size:.8rem;font-weight:500;text-transform:uppercase}.role-badge.admin{background:#ffc10733;color:gold;border:1px solid rgba(255,193,7,.3)}.role-badge.user{background:#6c757d33;color:#adb5bd;border:1px solid rgba(108,117,125,.3)}.status-badge.approved,.status-badge.enabled{background:#28a74533;color:#28a745;border:1px solid rgba(40,167,69,.3)}.status-badge.disabled,.status-badge.rejected{background:#dc354533;color:#dc3545;border:1px solid rgba(220,53,69,.3)}.admin-protected{color:#fff9;font-style:italic;font-size:.85rem}.location-permissions-section,.printer-management-section,.s3-cleanup-section{margin-top:2rem}.system-settings{margin-top:2rem;padding:1.5rem;background:#ffffff0d;border-radius:12px;border:1px solid rgba(255,255,255,.1)}.setting-item{display:flex;justify-content:space-between;align-items:center;padding:1rem;background:#0003;border-radius:8px;margin-bottom:1rem}.setting-info h4{margin:0 0 .5rem;color:gold;font-size:1.1rem}.setting-info p{margin:0;color:#ffffffb3;font-size:.9rem}.setting-control{display:flex;align-items:center;gap:1rem}.toggle-switch{position:relative;display:inline-block;width:60px;height:34px}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;cursor:pointer;inset:0;background-color:#dc3545cc;transition:.4s;border-radius:34px}.toggle-slider:before{position:absolute;content:"";height:26px;width:26px;left:4px;bottom:4px;background-color:#fff;transition:.4s;border-radius:50%}input:checked+.toggle-slider{background-color:#28a745cc}input:checked+.toggle-slider:before{transform:translate(26px)}.setting-status{font-weight:600;font-size:.9rem;padding:.25rem .5rem;border-radius:4px;text-transform:uppercase}.setting-status.enabled{background:#28a74533;color:#28a745;border:1px solid rgba(40,167,69,.3)}.setting-status.disabled{background:#dc354533;color:#dc3545;border:1px solid rgba(220,53,69,.3)}.auto-approval-info{background:#28a7451a;border:1px solid rgba(40,167,69,.3);border-radius:8px;padding:1rem;margin-top:1rem}.auto-approval-info p{margin:0;color:#28a745;font-size:.9rem}.verification-info{background:#007bff1a;border:1px solid rgba(0,123,255,.3);border-radius:8px;padding:1rem;margin-top:1rem}.verification-info p{margin:0;color:#007bff;font-size:.9rem}.welcome-screen{max-width:1200px;margin:0 auto;animation:fadeIn .5s ease-out}.welcome-header{text-align:center;margin-bottom:3rem}.welcome-header h2{color:gold;font-size:2.5rem;margin-bottom:1rem;font-weight:700}.welcome-header p{color:#fffc;font-size:1.2rem;margin:0}.welcome-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(350px,1fr));gap:2rem;margin-bottom:3rem}.welcome-card{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:16px;padding:2rem;cursor:pointer;transition:all .3s ease;position:relative;overflow:hidden}.welcome-card:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,#ffd7001a,#ffd7000d);opacity:0;transition:opacity .3s ease;z-index:1}.welcome-card:hover:before{opacity:1}.welcome-card:hover{transform:translateY(-8px);box-shadow:0 12px 32px #ffd70033;border-color:#ffd7004d}.welcome-card.disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.welcome-card.disabled:hover{transform:none;box-shadow:none;border-color:#ffffff1a}.rights-restriction{background:#dc35451a;border:1px solid rgba(220,53,69,.3);border-radius:6px;padding:.5rem;margin:.5rem 0;text-align:center}.rights-restriction span{color:#dc3545;font-size:.9rem;font-weight:500}.welcome-card>*{position:relative;z-index:2}.card-icon{font-size:3rem;text-align:center;margin-bottom:1rem}.welcome-card h3{color:gold;font-size:1.5rem;font-weight:600;margin-bottom:1rem;text-align:center}.welcome-card p{color:#fffc;font-size:1rem;line-height:1.6;margin-bottom:1.5rem;text-align:center}.card-features{display:flex;flex-direction:column;gap:.5rem}.card-features span{color:#ffffffb3;font-size:.9rem;padding-left:1rem;position:relative}.card-features span:before{content:"✓";position:absolute;left:0;color:#28a745;font-weight:700}.system-status{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:2rem;text-align:center}.system-status h4{color:gold;font-size:1.3rem;margin-bottom:1.5rem}.status-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem}.status-item{display:flex;flex-direction:column;gap:.5rem;padding:1rem;background:#0003;border-radius:8px;border:1px solid rgba(255,255,255,.1)}.status-label{color:#ffffffb3;font-size:.9rem;font-weight:500}.status-value{font-size:1.5rem;font-weight:700;color:gold}.status-value.healthy{color:#28a745}.status-value.warning{color:#ffc107}.status-value.error{color:#dc3545}.user-actions{display:flex;flex-direction:column;gap:.5rem;align-items:flex-start;min-width:120px}.action-buttons{display:flex;flex-direction:column;gap:.25rem;width:100%}.user-actions button{font-size:.8rem;padding:.4rem .8rem;min-width:100px;text-align:center}.action-feedback{font-size:.75rem;padding:.25rem .5rem;border-radius:4px;text-align:center;width:100%;animation:fadeIn .3s ease-out;word-wrap:break-word}.action-feedback.success{color:#22c55e;background:#22c55e1a}.action-feedback.error{color:#ef4444;background:#ef44441a}.action-feedback.loading{color:#f59e0b;background:#f59e0b1a}.user-stats-section{margin-bottom:2rem;padding:1rem;background:#ffffff0d;border-radius:8px;border:1px solid rgba(255,255,255,.1)}.user-stats-section h4{margin:0 0 1rem;color:gold;font-size:1.1rem;font-weight:600}.user-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:1rem;margin-bottom:0}.stat-card{background:#ffffff14;border:1px solid rgba(255,255,255,.15);border-radius:6px;padding:1rem;text-align:center;transition:all .2s ease;min-height:80px;display:flex;flex-direction:column;justify-content:center}.stat-card:hover{background:#ffffff1f;border-color:#ffd7004d;transform:translateY(-2px)}.stat-number{font-size:1.3rem;font-weight:700;color:#fff;margin-bottom:.25rem;line-height:1}.stat-label{font-size:.8rem;color:#fffc;font-weight:500;text-transform:uppercase;letter-spacing:.5px;line-height:1.2}@media(max-width:768px){.user-stats-grid{grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:.75rem}.stat-card{padding:.75rem;min-height:70px}.stat-number{font-size:1.1rem}.stat-label{font-size:.7rem}}@media(max-width:768px){.certificate-details{padding:1rem}.details-header{flex-direction:column;gap:1rem;text-align:center}.details-grid{grid-template-columns:1fr;gap:1rem}.detail-row{grid-template-columns:1fr;gap:.75rem}.section-header{padding:.75rem 1rem}.section-content{padding:1rem}.media-actions{flex-direction:column}.media-actions .action-btn,.media-actions .image-link{width:100%;justify-content:center}.details-table{font-size:.8rem}.detail-label,.detail-value{padding:.5rem .75rem}.detail-label{width:35%}.details-actions{flex-direction:column}.details-actions .action-btn{width:100%;justify-content:center}}@media(max-width:480px){.details-table{display:block;overflow-x:auto}.details-table tbody,.details-table tr,.details-table td{display:block;width:100%}.details-table tr{border:1px solid rgba(255,255,255,.1);border-radius:4px;margin-bottom:.5rem;padding:.5rem;background:#ffffff05}.detail-label{font-weight:700;color:gold;border-right:none;border-bottom:1px solid rgba(255,255,255,.1);padding-bottom:.25rem;margin-bottom:.25rem;width:100%;background:transparent}.detail-value{padding-top:0;width:100%}}@media(max-width:768px){.welcome-header h2{font-size:2rem}.welcome-header p{font-size:1rem}.welcome-cards{grid-template-columns:1fr;gap:1.5rem}.welcome-card{padding:1.5rem}.card-icon{font-size:2.5rem}.welcome-card h3{font-size:1.3rem}.status-grid{grid-template-columns:1fr}}.rights-controls{display:flex;flex-direction:column;gap:.5rem;min-width:140px}.rights-buttons{display:flex;gap:.25rem}.rights-btn{padding:.25rem .5rem;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:4px;color:#ffffffb3;font-size:.7rem;font-weight:500;cursor:pointer;transition:all .2s ease;text-transform:uppercase}.rights-btn:hover:not(:disabled){background:#ffffff26;border-color:#ffd7004d;color:#fff}.rights-btn.active{background:#28a745cc;border-color:#28a745;color:#fff;font-weight:600}.rights-btn:disabled{cursor:not-allowed;opacity:1}.rights-badge{padding:.25rem .5rem;border-radius:4px;font-size:.8rem;font-weight:500;text-transform:uppercase}.rights-badge.admin{background:#ffc10733;color:gold;border:1px solid rgba(255,193,7,.3)}.refresh-message{font-size:.9rem;font-weight:500;text-align:center;animation:fadeIn .3s ease-out}.refresh-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.refresh-btn:disabled:hover{transform:none;box-shadow:none}.s3-cleanup-container{background:linear-gradient(135deg,#1a1a2e,#16213e);border-radius:12px;padding:2rem;margin-top:2rem;box-shadow:0 4px 12px #0000004d}.s3-cleanup-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:2px solid rgba(52,152,219,.3)}.s3-cleanup-header h3{margin:0;color:#fff;font-size:1.5rem;font-weight:600}.s3-refresh-btn{background:linear-gradient(135deg,#3498db,#2980b9);color:#fff;border:none;padding:.5rem 1rem;border-radius:6px;cursor:pointer;font-size:.9rem;font-weight:600;transition:all .3s}.s3-refresh-btn:hover:not(:disabled){background:linear-gradient(135deg,#2980b9,#21618c);transform:translateY(-2px)}.s3-refresh-btn:disabled{opacity:.6;cursor:not-allowed}.s3-alert{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;border-radius:8px;margin-bottom:1.5rem;animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.s3-alert-success{background:linear-gradient(135deg,#27ae601a,#2299541a);border:2px solid #27ae60;color:#27ae60}.s3-alert-error{background:linear-gradient(135deg,#e74c3c1a,#c0392b1a);border:2px solid #e74c3c;color:#e74c3c}.s3-alert-warning{background:linear-gradient(135deg,#f39c121a,#e67e221a);border:2px solid #f39c12;color:#f39c12}.s3-alert button,.s3-error-banner button{background:none;border:none;font-size:1.5rem;cursor:pointer;padding:0;width:24px;height:24px;color:inherit}.s3-error-banner{background:linear-gradient(135deg,#e74c3c,#c0392b);color:#fff;padding:1rem 1.5rem;border-radius:8px;display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.s3-status-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:1rem;margin-bottom:2rem}.s3-stat-card{background:linear-gradient(135deg,#16213e,#1a1a2e);padding:1.5rem;border-radius:8px;text-align:center;transition:all .3s;border:1px solid rgba(52,152,219,.2)}.s3-stat-card:hover{background:linear-gradient(135deg,#1a1a2e,#16213e);transform:translateY(-2px);border-color:#3498db66}.s3-stat-card.s3-stat-main{background:linear-gradient(135deg,#3498db,#2980b9);color:#fff}.s3-stat-card.s3-status-healthy{border-left:4px solid #27ae60}.s3-stat-card.s3-status-warning{border-left:4px solid #f39c12}.s3-stat-card.s3-status-critical{border-left:4px solid #e74c3c}.s3-stat-value{font-size:2.5rem;font-weight:700;color:#fff;font-family:Courier New,monospace;margin-bottom:.5rem}.s3-stat-card.s3-stat-main .s3-stat-value{color:#fff;font-size:3rem}.s3-stat-label{font-size:.85rem;color:#fffc;text-transform:uppercase;letter-spacing:.5px;font-weight:600}.s3-stat-card.s3-stat-main .s3-stat-label{color:#ffffffe6}.s3-stat-status{margin-top:.5rem;padding:.35rem .75rem;border-radius:20px;font-weight:600;font-size:.85rem;background:#fff3;color:#fff}.s3-cleanup-actions{background:linear-gradient(135deg,#16213e,#1a1a2e);padding:1.5rem;border-radius:8px;margin-bottom:2rem;border:1px solid rgba(52,152,219,.2)}.s3-cleanup-btn{width:100%;padding:1.25rem 2rem;background:linear-gradient(135deg,#e74c3c,#c0392b);color:#fff;border:none;border-radius:8px;font-size:1.1rem;font-weight:600;cursor:pointer;transition:all .3s;display:flex;align-items:center;justify-content:center;gap:.75rem;box-shadow:0 4px 12px #e74c3c4d}.s3-cleanup-btn:hover:not(:disabled){background:linear-gradient(135deg,#c0392b,#a93226);transform:translateY(-2px);box-shadow:0 6px 16px #e74c3c66}.s3-cleanup-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.s3-spinner{width:20px;height:20px;border:3px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}.s3-cleanup-description{margin-top:1rem;color:#fffc;font-size:.9rem;line-height:1.6;text-align:center}.s3-last-result{padding:1.5rem;border-radius:8px;margin-bottom:2rem}.s3-result-success{background:linear-gradient(135deg,#27ae601a,#2299541a);border:2px solid #27ae60}.s3-result-error{background:linear-gradient(135deg,#e74c3c1a,#c0392b1a);border:2px solid #e74c3c}.s3-result-header{display:flex;align-items:center;gap:1rem;margin-bottom:1rem}.s3-result-icon{font-size:1.5rem}.s3-result-message{flex:1;font-weight:600;font-size:1.05rem;color:#2c3e50}.s3-result-details{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}.s3-result-stat{text-align:center;padding:.75rem;background:#ffffff80;border-radius:6px}.s3-result-stat span{display:block;font-size:.8rem;color:#7f8c8d;margin-bottom:.25rem}.s3-result-stat strong{display:block;font-size:1.25rem;color:#2c3e50;font-family:Courier New,monospace}.s3-result-errors{grid-column:1 / -1;margin-top:1rem;padding:1rem;background:#e74c3c1a;border-radius:6px}.s3-result-errors strong{color:#e74c3c;margin-bottom:.5rem;display:block}.s3-result-errors ul{margin:0;padding-left:1.5rem}.s3-result-errors li{color:#c0392b;font-size:.9rem;margin-bottom:.25rem}.s3-pending-orphans{background:linear-gradient(135deg,#f39c120d,#e67e220d);border:2px solid #f39c12;border-radius:12px;padding:1.5rem;margin:2rem 0}.s3-pending-header{margin-bottom:1.5rem}.s3-pending-header h4{margin:0 0 .5rem;color:#e67e22;font-size:1.25rem;font-weight:600}.s3-pending-description{color:#7f8c8d;font-size:.9rem;margin:0;line-height:1.5}.s3-pending-table{overflow-x:auto;margin-bottom:1rem}.s3-pending-table table{width:100%;border-collapse:collapse;background:#fff;border-radius:8px;overflow:hidden}.s3-pending-table thead{background:linear-gradient(135deg,#f39c12,#e67e22);color:#fff}.s3-pending-table th{padding:.75rem;text-align:left;font-weight:600;font-size:.85rem;text-transform:uppercase;letter-spacing:.5px}.s3-pending-table tbody tr{border-bottom:1px solid #f1f3f4;transition:background .3s}.s3-pending-table tbody tr:hover{background:#f39c120d}.s3-pending-table td{padding:.75rem;color:#2c3e50;font-size:.9rem}.s3-filename{font-family:Courier New,monospace;font-size:.85rem;display:flex;align-items:center;gap:.5rem}.s3-file-icon{font-size:1.2rem}.s3-cert-id{text-align:center}.s3-cert-badge{display:inline-block;background:linear-gradient(135deg,#3498db33,#2980b933);color:#2980b9;padding:.25rem .75rem;border-radius:12px;font-weight:600;font-size:.8rem;font-family:Courier New,monospace}.s3-age{text-align:center;font-family:Courier New,monospace;font-weight:600;color:#e67e22}.s3-scheduled-time{font-family:Courier New,monospace;font-size:.85rem;color:#7f8c8d}.s3-time-remaining{text-align:center}.s3-countdown{display:inline-block;background:linear-gradient(135deg,#e74c3c33,#c0392b33);color:#c0392b;padding:.35rem .75rem;border-radius:20px;font-weight:700;font-size:.85rem;font-family:Courier New,monospace}.s3-pending-info{background:#f39c121a;border-left:4px solid #f39c12;padding:1rem;border-radius:6px;display:flex;align-items:flex-start;gap:1rem}.s3-info-icon{font-size:1.5rem;flex-shrink:0}.s3-pending-info p{margin:0;color:#ffffffe6;font-size:.9rem;line-height:1.6}.s3-history-section{margin-top:2rem}.s3-history-section h4{margin:0 0 1rem;color:#fff;font-size:1.25rem;font-weight:600}.s3-no-history{text-align:center;color:#fffc;padding:2rem;font-size:1.05rem}.s3-history-table{overflow-x:auto}.s3-history-table table{width:100%;border-collapse:collapse}.s3-history-table thead{background:linear-gradient(135deg,#3498db,#2980b9);color:#fff}.s3-history-table th{padding:.75rem;text-align:left;font-weight:600;font-size:.85rem;text-transform:uppercase;letter-spacing:.5px}.s3-history-table tbody tr{background:linear-gradient(135deg,#1a1a2e,#16213e);border-bottom:1px solid rgba(52,152,219,.3);transition:background .3s}.s3-history-table tbody tr:hover{background:linear-gradient(135deg,#16213e,#1a1a2e)}.s3-history-table td{padding:.75rem;color:#fff;font-size:.9rem}.s3-timestamp{font-family:Courier New,monospace;font-size:.8rem;color:#fffc}.s3-number{text-align:center;font-family:Courier New,monospace;font-weight:600}.s3-number.s3-cleaned{color:#2ecc71}.s3-error-count{display:inline-block;background:#e74c3c4d;color:#ff6b6b;padding:.25rem .5rem;border-radius:12px;font-weight:700;cursor:help}.s3-no-errors{color:#2ecc71}.s3-type-badge{display:inline-block;padding:.25rem .75rem;border-radius:12px;font-size:.8rem;font-weight:600}.s3-type-manual_cleanup{background:#3498db4d;color:#5dade2}.s3-type-automated_cleanup{background:#2ecc714d;color:#2ecc71}.s3-status-icon{font-size:1.2rem}.s3-status-icon.s3-success{color:#2ecc71}.s3-status-icon.s3-warning{color:#f39c12}@media(max-width:1200px){.s3-status-grid{grid-template-columns:1fr 1fr}.s3-stat-card.s3-stat-main{grid-column:1 / -1}.s3-result-details{grid-template-columns:repeat(2,1fr)}}@media(max-width:768px){.s3-status-grid,.s3-result-details{grid-template-columns:1fr}.s3-history-table{font-size:.8rem}.s3-history-table th,.s3-history-table td{padding:.5rem}}.s3-status-loading{text-align:center;padding:2rem;color:#7f8c8d}.location-perms-manager{background:#ffffff0d;border-radius:12px;padding:1.5rem;margin:1.5rem 0;border:1px solid rgba(255,255,255,.1);color:#fff}.perms-header{margin-bottom:1.5rem}.perms-title h2{margin:0 0 .5rem;font-size:1.5rem;font-weight:600;background:linear-gradient(135deg,gold,#ffed4e);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.perms-subtitle{margin:0;color:#ffffffb3;font-size:.95rem}.perms-tabs{display:flex;gap:.75rem;margin-bottom:1.5rem;border-bottom:1px solid rgba(255,255,255,.1);padding-bottom:0}.perms-tab{padding:.75rem 1.5rem;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-bottom:none;color:#ffffffb3;cursor:pointer;font-size:.95rem;font-weight:500;transition:all .3s ease;border-radius:8px 8px 0 0;margin-bottom:-1px}.perms-tab:hover{color:#fff;background:#ffffff1a}.perms-tab.active{color:#1a1a2e;background:linear-gradient(135deg,gold,#ffed4e);border-color:gold;box-shadow:0 -2px 8px #ffd7004d}.perms-toast{position:fixed;top:20px;right:20px;padding:1rem 1.5rem;border-radius:8px;font-weight:500;z-index:10000;animation:slideIn .3s ease;max-width:400px;box-shadow:0 4px 20px #00000080}.perms-toast-success{background:linear-gradient(135deg,#10b981,#059669);color:#fff}.perms-toast-error{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff}@keyframes slideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.perms-content{background:#0003;border-radius:8px;padding:1.5rem;border:1px solid rgba(255,255,255,.1);min-height:400px}.perms-users-tab{display:flex;flex-direction:column;gap:1.5rem}.perms-filters{display:flex;gap:1rem;flex-wrap:wrap}.perms-search{flex:1;min-width:250px;padding:.75rem 1rem;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:8px;color:#fff;font-size:.95rem;transition:all .3s ease}.perms-search::placeholder{color:#ffffff80}.perms-search:focus{outline:none;border-color:gold;box-shadow:0 0 0 2px #ffd70033}.perms-filter-select{padding:.75rem 1rem;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:8px;color:#fff;font-size:.95rem;min-width:180px;cursor:pointer;transition:all .3s ease}.perms-filter-select:focus{outline:none;border-color:gold;box-shadow:0 0 0 2px #ffd70033}.perms-filter-select option{background:#1a1a2e;color:#fff}.perms-table-wrapper{overflow-x:auto;border:1px solid rgba(255,255,255,.1);border-radius:8px;background:#0000004d}.perms-matrix-table{width:100%;border-collapse:collapse;font-size:.9rem}.perms-matrix-table thead{background:#ffffff1a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.perms-matrix-table th{padding:1rem .75rem;text-align:left;font-weight:600;color:gold;border-bottom:1px solid rgba(255,255,255,.2)}.perms-matrix-table th.user-col{min-width:220px;position:sticky;left:0;background:#ffffff1a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:10}.perms-matrix-table th.home-col{min-width:100px;text-align:center}.perms-matrix-table th.location-col{min-width:150px;text-align:center;border-left:1px solid rgba(255,255,255,.1)}.location-header{display:flex;flex-direction:column;gap:.5rem;align-items:center}.location-name{font-size:1rem;font-weight:700;color:gold}.permission-labels{display:flex;gap:1rem;font-size:1.1rem}.perm-label{cursor:help}.perms-matrix-table tbody tr{border-bottom:1px solid rgba(255,255,255,.05);transition:background .2s ease}.perms-matrix-table tbody tr:hover{background:#ffffff0d}.perms-matrix-table td{padding:1rem .75rem;color:#fff}.perms-matrix-table td.user-col{position:sticky;left:0;background:#0000004d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:5;border-right:1px solid rgba(255,255,255,.1)}.perms-matrix-table tbody tr:hover td.user-col{background:#ffffff0d}.user-info{display:flex;flex-direction:column;gap:.25rem}.username{font-weight:600;color:#fff}.email{font-size:.85rem;color:#fff9}.home-col{text-align:center}.home-badge{display:inline-block;padding:.25rem .75rem;background:linear-gradient(135deg,gold,#ffed4e);color:#1a1a2e;border-radius:12px;font-size:.85rem;font-weight:600}.permission-col{text-align:center;border-left:1px solid rgba(255,255,255,.05)}.permission-toggles{display:flex;gap:.75rem;justify-content:center;align-items:center}.perm-toggle{width:36px;height:36px;border:2px solid rgba(255,255,255,.2);border-radius:6px;background:#ffffff0d;cursor:pointer;font-size:1rem;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.perm-toggle:hover:not(:disabled){transform:scale(1.1);box-shadow:0 2px 8px #ffd7004d;border-color:gold}.perm-toggle.active{background:linear-gradient(135deg,#10b981,#059669);border-color:#10b981;color:#fff}.perm-toggle.locked{background:#ffffff1a;border-color:#ffffff1a;cursor:not-allowed;opacity:.6}.perm-toggle:disabled{cursor:not-allowed}.perms-legend{margin-top:1.5rem;padding:1.5rem;background:#ffffff0d;border-radius:8px;border:1px solid rgba(255,255,255,.1)}.perms-legend h3{margin:0 0 1rem;font-size:1.1rem;color:gold}.legend-items{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1rem}.legend-item{display:flex;gap:1rem;align-items:flex-start}.legend-icon{font-size:1.5rem;flex-shrink:0}.legend-item strong{display:block;color:#fff;margin-bottom:.25rem}.legend-item p{margin:0;font-size:.9rem;color:#ffffffb3;line-height:1.4}.perms-stats-tab{padding:1rem}.stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem}.stat-card{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:1.5rem;transition:transform .3s ease,box-shadow .3s ease}.stat-card:hover{transform:translateY(-4px);box-shadow:0 8px 20px #ffd70033;border-color:#ffd7004d}.stat-header{font-size:.95rem;font-weight:600;color:#ffffffb3;margin-bottom:.75rem}.stat-value{font-size:1.5rem;font-weight:700;background:linear-gradient(135deg,gold,#ffed4e);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:.5rem}.stat-description{font-size:.85rem;color:#fff9}.stat-details{display:flex;flex-direction:column;gap:.75rem}.stat-row{display:flex;justify-content:space-between;padding:.5rem 0;border-bottom:1px solid rgba(255,255,255,.1)}.stat-row span{color:#ffffffb3}.stat-row strong{color:gold;font-size:1.1rem}.perms-audit-tab{padding:1rem}.audit-table-wrapper{overflow-x:auto;border:1px solid rgba(255,255,255,.1);border-radius:8px;background:#0000004d}.audit-table{width:100%;border-collapse:collapse;font-size:.9rem}.audit-table thead{background:#ffffff1a}.audit-table th{padding:1rem;text-align:left;font-weight:600;color:gold;border-bottom:1px solid rgba(255,255,255,.2)}.audit-table td{padding:.75rem 1rem;border-bottom:1px solid rgba(255,255,255,.05);color:#fff}.audit-table tbody tr:hover{background:#ffffff0d}.location-badge{display:inline-block;padding:.25rem .75rem;background:linear-gradient(135deg,#007bff,#0056b3);color:#fff;border-radius:12px;font-size:.85rem;font-weight:600}.action-badge{display:inline-block;padding:.25rem .75rem;border-radius:12px;font-size:.85rem;font-weight:600}.action-badge.action-granted{background:linear-gradient(135deg,#10b981,#059669);color:#fff}.action-badge.action-updated{background:linear-gradient(135deg,#007bff,#0056b3);color:#fff}.action-badge.action-revoked{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff}.perms-loading{display:flex;justify-content:center;align-items:center;padding:3rem;font-size:1.1rem;color:#ffffffb3}@media(max-width:768px){.location-perms-manager{padding:1rem}.perms-title h2{font-size:1.3rem}.perms-tabs{flex-wrap:wrap}.perms-tab{padding:.5rem 1rem;font-size:.85rem}.stats-grid,.legend-items{grid-template-columns:1fr}}.permission-badge{transition:all .3s cubic-bezier(.4,0,.2,1)}.permission-badge:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.view-mode-toggle button:hover{transform:translateY(-1px);box-shadow:0 2px 8px #3b82f626}.perms-matrix-view{animation:fadeIn .4s ease-out}.matrix-simple-table tbody tr{transition:all .3s ease}.matrix-simple-table tbody tr:hover{background:#f9fafb;transform:scale(1.01);box-shadow:0 2px 8px #0000000d}.perms-table-wrapper::-webkit-scrollbar,.perms-matrix-view::-webkit-scrollbar{height:8px;width:8px}.perms-table-wrapper::-webkit-scrollbar-track,.perms-matrix-view::-webkit-scrollbar-track{background:#f1f1f1;border-radius:10px}.perms-table-wrapper::-webkit-scrollbar-thumb,.perms-matrix-view::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:10px;transition:background .3s}.perms-table-wrapper::-webkit-scrollbar-thumb:hover,.perms-matrix-view::-webkit-scrollbar-thumb:hover{background:#a1a1a1}.perms-header{animation:fadeInDown .5s ease-out}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.stat-card{transition:all .3s cubic-bezier(.4,0,.2,1)}.stat-card:hover{transform:translateY(-4px);box-shadow:0 8px 20px #0000001a}@media(max-width:768px){.perms-filters{flex-direction:column}.perms-search{width:100%}.view-mode-toggle{width:100%;justify-content:center}.perms-tabs{overflow-x:auto;-webkit-overflow-scrolling:touch}}*:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.force-clear-panel{background:#1a1a2e;border-radius:12px;padding:24px;margin-top:24px}.panel-header{margin-bottom:24px}.panel-header h2{color:#fff;font-size:20px;margin:0 0 8px}.panel-warning{color:#ffb300;font-size:14px;margin:0;font-weight:600}.force-clear-password-overlay{position:fixed;inset:0;background:#000000e6;display:flex;align-items:center;justify-content:center;z-index:15000;animation:fadeIn .2s ease-out}.force-clear-password-modal{background:#1a1a2e;border:2px solid #f44336;border-radius:12px;padding:28px;width:90%;max-width:420px;box-shadow:0 8px 32px #f4433666}.force-clear-password-modal h3{color:#fff;font-size:18px;margin:0 0 12px;text-align:center}.operation-name{color:#ffb300;font-size:14px;text-align:center;margin:0 0 18px}.operation-name strong{color:#fff;text-transform:uppercase}.force-clear-password-modal input{width:100%;background:#2d2d44;border:2px solid #f44336;border-radius:8px;padding:12px 16px;color:#fff;font-size:15px;box-sizing:border-box;transition:all .2s}.force-clear-password-modal input:focus{outline:none;border-color:#ff6b6b;box-shadow:0 0 0 3px #f4433633}.password-error{color:#f44336;font-size:13px;margin-top:10px;text-align:center;font-weight:600}.password-buttons{display:flex;gap:10px;margin-top:20px}.password-buttons button{flex:1;padding:10px 18px;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s;border:none}.password-buttons button:first-child{background:#2d2d44;color:#fff;border:1px solid #3d3d5c}.password-buttons button:first-child:hover{background:#3d3d5c}.password-buttons .submit-btn{background:#f44336!important;color:#fff!important}.password-buttons .submit-btn:hover{background:#d32f2f!important;transform:translateY(-1px)}.status-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;margin-bottom:24px}.status-card{background:#2d2d44;border-radius:8px;padding:18px;border:1px solid #3d3d5c}.status-card h3{color:#fff;font-size:16px;margin:0 0 12px}.status-row{display:flex;justify-content:space-between;align-items:center;padding:8px 0;font-size:14px;border-bottom:1px solid #3d3d5c}.status-row:last-child{border-bottom:none}.status-row span{color:#a0a0a0}.status-row strong{color:#fff;font-weight:600}.status-row.total{border-top:2px solid #3d3d5c;padding-top:12px;margin-top:8px}.status-row.total strong{color:#4caf50;font-size:16px}.operations-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px;margin-bottom:24px}.operation-card{background:#2d2d44;border-radius:8px;padding:18px;border:1px solid #3d3d5c}.operation-card h3{color:#fff;font-size:16px;margin:0 0 8px}.operation-card p{color:#a0a0a0;font-size:13px;margin:0 0 16px}.operation-buttons{display:flex;flex-direction:column;gap:10px}.operation-buttons button{padding:10px 16px;border-radius:6px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s;border:none}.operation-buttons button:disabled{opacity:.4;cursor:not-allowed}.btn-danger{background:#f44336;color:#fff}.btn-danger:hover:not(:disabled){background:#d32f2f;transform:translateY(-1px);box-shadow:0 4px 12px #f443364d}.btn-danger-high{background:#b71c1c;color:#fff;border:2px solid #f44336!important}.btn-danger-high:hover:not(:disabled){background:#8b0000;transform:translateY(-1px);box-shadow:0 4px 12px #b71c1c80}.btn-warning{background:#ffb300;color:#1a1a2e}.btn-warning:hover:not(:disabled){background:#ffa000;transform:translateY(-1px);box-shadow:0 4px 12px #ffb3004d}.panel-footer{display:flex;justify-content:center;padding-top:16px;border-top:1px solid #3d3d5c}.btn-refresh{background:#4caf50;color:#fff;border:none;padding:10px 24px;border-radius:6px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s}.btn-refresh:hover:not(:disabled){background:#45a049;transform:translateY(-1px);box-shadow:0 4px 12px #4caf504d}.btn-refresh:disabled{opacity:.5;cursor:not-allowed}@media(max-width:768px){.operations-grid,.status-grid{grid-template-columns:1fr}.force-clear-password-modal{width:90%}}.card-printing-section{min-height:100vh;background:linear-gradient(135deg,#1a1a2e,#16213e,#0f3460);padding:2rem;color:#fff}.cp-header{margin-bottom:1.5rem}.cp-header h2{margin:0;font-size:1.75rem;color:#fff;font-weight:600}.cp-location-selector{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem}.cp-location-selector label{font-weight:600;color:#e5e7eb;font-size:14px}.cp-location-dropdown{padding:.75rem 1rem;border:2px solid #e5e7eb;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .3s ease;background:#fff;min-width:150px}.cp-location-dropdown:hover{border-color:#3b82f6}.cp-location-dropdown:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.cp-location-display{margin-bottom:1.5rem}.location-badge{display:inline-block;padding:.5rem 1rem;background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;border-radius:8px;font-weight:600;font-size:14px}.cp-error{padding:1rem;background:#fee2e2;border:2px solid #fecaca;border-radius:8px;color:#991b1b;margin-bottom:1.5rem;font-weight:500}.cp-screenshot-container{position:relative;width:100%;height:600px;background:#0000004d;border:2px solid rgba(255,255,255,.1);border-radius:12px;overflow:hidden;margin-bottom:1rem}.cp-placeholder{display:flex;align-items:center;justify-content:center;height:100%}.placeholder-content{text-align:center}.placeholder-icon{font-size:4rem;margin-bottom:1rem;opacity:.5}.placeholder-text{font-size:1.25rem;font-weight:600;color:#e5e7eb;margin-bottom:.5rem}.placeholder-subtext{font-size:.95rem;color:#9ca3af}.cp-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%}.loading-spinner{width:60px;height:60px;border:5px solid #e5e7eb;border-top-color:#3b82f6;border-radius:50%;animation:spin 1s linear infinite}.loading-text{margin-top:1rem;font-size:1rem;color:#6b7280;font-weight:500}.cp-screenshot-wrapper{position:relative;width:100%;height:100%;cursor:pointer;transition:all .3s ease}.cp-screenshot-wrapper:hover{transform:scale(1.02)}.cp-screenshot-wrapper:hover .cp-zoom-hint{opacity:1}.cp-screenshot-image{width:100%;height:100%;object-fit:contain}.cp-zoom-hint{position:absolute;bottom:1rem;right:1rem;background:#000000bf;color:#fff;padding:.5rem 1rem;border-radius:6px;font-size:13px;font-weight:500;opacity:0;transition:opacity .3s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.cp-capture-info{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;background:#ffffff0d;border-radius:8px;margin-bottom:1rem;font-size:14px}.freshness-indicator{font-weight:600;display:flex;align-items:center;gap:.5rem}.capture-time{color:#9ca3af}.cp-actions{display:flex;justify-content:center}.cp-capture-btn{padding:1rem 2.5rem;background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 12px #3b82f64d}.cp-capture-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #3b82f666}.cp-capture-btn:active:not(:disabled){transform:translateY(0)}.cp-capture-btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.cp-fullscreen-modal{position:fixed;inset:0;background:#000000f2;z-index:10000;display:flex;align-items:center;justify-content:center;animation:fadeIn .3s ease}.cp-fullscreen-content{position:relative;max-width:95vw;max-height:95vh;display:flex;flex-direction:column;gap:1rem}.cp-fullscreen-close{position:absolute;top:-50px;right:0;padding:.75rem 1.5rem;background:#fff;color:#1f2937;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 12px #0003}.cp-fullscreen-close:hover{background:#ef4444;color:#fff;transform:translateY(-2px)}.cp-fullscreen-image{max-width:95vw;max-height:calc(95vh - 60px);object-fit:contain;border-radius:8px;box-shadow:0 20px 60px #00000080}.cp-fullscreen-info{display:flex;justify-content:center;gap:1rem;color:#fff;font-size:14px;padding:.5rem 1rem;background:#ffffff1a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:8px;margin:0 auto}.accordion-section{margin-top:1.5rem;border:2px solid rgba(255,255,255,.1);border-radius:8px;overflow:hidden;background:#ffffff0d}.accordion-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;background:#ffffff14;cursor:pointer;transition:all .3s ease;-webkit-user-select:none;user-select:none}.accordion-header:hover{background:#ffffff1f}.accordion-title{font-size:1.25rem;font-weight:600;color:#fff}.accordion-icon{font-size:1rem;color:#e5e7eb;transition:transform .3s ease}.accordion-content{padding:1.5rem;background:#ffffff08;animation:slideDown .3s ease}.s3-sync-controls{display:flex;gap:1rem;margin-bottom:1.5rem}.s3-sync-btn{padding:1rem 2rem;background:linear-gradient(135deg,#10b981,#059669);color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 12px #10b9814d}.s3-sync-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #10b98166}.s3-sync-btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.s3-cancel-btn{padding:1rem 2rem;background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 12px #ef44444d}.s3-cancel-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px #ef444466}.s3-sync-stats{display:flex;gap:2rem;padding:1rem;background:#ffffff0d;border-radius:8px;margin-bottom:1rem}.stat-label{font-size:12px;color:#9ca3af;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.stat-value{font-size:24px;font-weight:700;color:#fff}.s3-progress-bar{width:100%;height:8px;background:#e5e7eb;border-radius:4px;overflow:hidden;margin-bottom:1rem}.s3-progress-fill{height:100%;background:linear-gradient(90deg,#10b981,#059669);transition:width .3s ease}.s3-last-sync{padding:.75rem 1rem;background:#10b9811a;border:1px solid rgba(16,185,129,.3);border-radius:8px;color:#6ee7b7;font-size:14px;font-weight:500;margin-bottom:1rem}.s3-empty-bucket-info{padding:.75rem 1rem;background:#3b82f61a;border:1px solid rgba(59,130,246,.3);border-radius:8px;color:#93c5fd;font-size:14px;font-weight:500;margin-bottom:1rem;display:flex;align-items:center;gap:.5rem}.s3-console{margin-top:1.5rem;border:1px solid #34495e;border-radius:4px;background:#1e1e1e}.console-header{padding:8px 12px;background:#2c3e50;border-bottom:1px solid #34495e;font-family:Courier New,monospace;font-size:12px;color:#ecf0f1;font-weight:600}.console-output{height:250px;overflow-y:auto;padding:10px;font-family:Courier New,monospace;font-size:12px;line-height:1.6}.console-empty{color:#7f8c8d;text-align:center;padding:40px;font-style:italic}.console-line{margin-bottom:4px;display:flex;gap:8px}.console-line .time{color:#95a5a6;min-width:70px;flex-shrink:0}.console-line .msg{color:#ecf0f1;flex:1;word-break:break-word}.console-line.error .msg{color:#e74c3c;font-weight:500}.console-line.info .msg{color:#3498db}.print-section{padding:1rem 0}.print-controls{display:flex;gap:1rem;margin-bottom:1.5rem}.print-btn{flex:1;padding:.875rem 1.5rem;background:linear-gradient(135deg,#9b59b6,#8e44ad);color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 6px #9b59b64d}.print-btn:hover:not(:disabled){background:linear-gradient(135deg,#8e44ad,#732d91);box-shadow:0 6px 12px #9b59b666;transform:translateY(-2px)}.print-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.print-status{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:1rem;margin-bottom:1rem}.print-status.success{background:#2ecc711a;border-color:#2ecc714d}.print-status.error{background:#e74c3c1a;border-color:#e74c3c4d}.status-phase{font-size:.875rem;color:#95a5a6;margin-bottom:.5rem;text-transform:uppercase;font-weight:600}.status-message{color:#ecf0f1;font-size:1rem}.print-status.success .status-message{color:#2ecc71}.print-status.error .status-message{color:#e74c3c}.print-last-run{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:.75rem 1rem;margin-bottom:1.5rem;font-size:.875rem;color:#95a5a6;display:flex;align-items:center;gap:.5rem}.success-badge{color:#2ecc71;font-weight:600}.error-badge{color:#e74c3c;font-weight:600}.print-console{background:#0006;border:1px solid rgba(255,255,255,.1);border-radius:8px;overflow:hidden}.print-console .console-header{background:linear-gradient(135deg,#9b59b6,#8e44ad);color:#fff;padding:.75rem 1rem;font-weight:600;font-size:.875rem;letter-spacing:.5px;border-bottom:2px solid rgba(155,89,182,.3)}.print-console .console-output{padding:1rem;max-height:400px;overflow-y:auto;font-family:Courier New,monospace;font-size:.875rem;background:#0000004d}@media(max-width:768px){.card-printing-section{padding:1rem}.cp-screenshot-container{height:400px}.cp-capture-btn{width:100%}.cp-fullscreen-close{top:1rem;right:1rem}.s3-sync-controls{flex-direction:column}.s3-sync-btn,.s3-cancel-btn{width:100%}.s3-sync-stats{flex-direction:column;gap:1rem}.print-controls{flex-direction:column}.print-btn{width:100%}}.proceed-to-printing-container{margin-top:1rem;padding:1rem;background:linear-gradient(135deg,#10b9811a,#0596690d);border-radius:12px;border:2px solid rgba(16,185,129,.3);display:flex;justify-content:center;animation:slideInUp .3s ease}.proceed-to-printing-btn{padding:1rem 2rem;background:linear-gradient(135deg,#10b981,#059669);color:#fff;border:none;border-radius:8px;font-size:1.125rem;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 12px #10b9814d;display:flex;align-items:center;gap:.5rem}.proceed-to-printing-btn:hover{background:linear-gradient(135deg,#059669,#047857);box-shadow:0 6px 16px #10b98166;transform:translateY(-2px)}.proceed-to-printing-btn:active{transform:translateY(0)}@keyframes slideInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.workflow-hint{margin-top:.75rem;padding:.75rem 1rem;background:#3b82f61a;border:1px solid rgba(59,130,246,.3);border-radius:8px;color:#93c5fd;font-size:.875rem;text-align:center}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.password-manager{margin-top:2rem;padding:1.5rem;background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a}.password-manager-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.password-manager-header h3{margin:0;color:#1e293b;font-size:1.25rem;font-weight:600}.refresh-btn{padding:.5rem 1rem;background:#3b82f6;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.875rem;transition:background .2s}.refresh-btn:hover:not(:disabled){background:#2563eb}.refresh-btn:disabled{background:#cbd5e1;cursor:not-allowed}.status-message{padding:.75rem 1rem;border-radius:4px;margin-bottom:1rem;font-weight:500}.status-message.success{background:#d1fae5;color:#059669;border:1px solid #6ee7b7}.status-message.error{background:#fee2e2;color:#dc2626;border:1px solid #fca5a5}.status-message.info{background:#e0f2fe;color:#0284c7;border:1px solid #7dd3fc}.user-list{overflow-x:auto}.loading-state{text-align:center;padding:2rem;color:#64748b}.user-list table{width:100%;border-collapse:collapse;min-width:800px}.user-list th,.user-list td{padding:.75rem;text-align:left;border-bottom:1px solid #e2e8f0}.user-list th{background:#f8fafc;color:#64748b;font-weight:600;font-size:.875rem;text-transform:uppercase;letter-spacing:.5px}.user-list tbody tr{transition:background .2s}.user-list tbody tr:hover{background:#f8fafc}.user-list td{color:#334155;font-size:.875rem}.user-list td.last-login{font-size:.8125rem;color:#64748b}.role-badge,.status-badge{padding:.25rem .625rem;border-radius:12px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;display:inline-block}.role-badge.admin{background:#fee2e2;color:#dc2626}.role-badge.user{background:#e0f2fe;color:#0284c7}.status-badge.approved{background:#d1fae5;color:#059669}.status-badge.disabled{background:#fee2e2;color:#dc2626}.status-badge.pending{background:#fef3c7;color:#d97706}.reset-btn{padding:.5rem 1rem;background:#3b82f6;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.875rem;transition:all .2s;font-weight:500}.reset-btn:hover{background:#2563eb;transform:translateY(-1px);box-shadow:0 2px 4px #3b82f64d}.reset-btn:disabled{background:#cbd5e1;cursor:not-allowed;transform:none}.modal-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:fadeIn .2s ease-in-out}.modal-content{background:#fff;border-radius:8px;max-width:500px;width:90%;max-height:90vh;overflow-y:auto;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;animation:slideUp .3s ease-out}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-header{padding:1.5rem;border-bottom:1px solid #e2e8f0;display:flex;justify-content:space-between;align-items:center}.modal-header h3{margin:0;color:#1e293b;font-size:1.125rem;font-weight:600}.close-btn{background:none;border:none;font-size:1.5rem;color:#64748b;cursor:pointer;padding:0;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s}.close-btn:hover{background:#f1f5f9;color:#1e293b}.modal-body{padding:1.5rem}.modal-footer{padding:1rem 1.5rem;border-top:1px solid #e2e8f0;display:flex;gap:.5rem;justify-content:flex-end}.form-group{margin-bottom:1.25rem}.form-group label{display:block;margin-bottom:.5rem;color:#475569;font-weight:500;font-size:.875rem}.form-group input{width:100%;padding:.75rem;border:1px solid #cbd5e1;border-radius:4px;font-size:1rem;transition:all .2s;box-sizing:border-box}.form-group input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.password-input-group{position:relative;display:flex}.password-input-group input{flex:1;padding-right:3rem}.toggle-password{position:absolute;right:.5rem;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;font-size:1.25rem;padding:.25rem .5rem;transition:opacity .2s}.toggle-password:hover{opacity:.7}.password-actions{display:flex;gap:.5rem;margin-bottom:1rem;flex-wrap:wrap}.generate-btn,.copy-btn{padding:.625rem 1rem;border:none;border-radius:4px;cursor:pointer;font-size:.875rem;font-weight:500;transition:all .2s}.generate-btn{background:#10b981;color:#fff;flex:1;min-width:200px}.generate-btn:hover{background:#059669;transform:translateY(-1px);box-shadow:0 2px 4px #10b9814d}.copy-btn{background:#8b5cf6;color:#fff;flex:1;min-width:150px}.copy-btn:hover{background:#7c3aed;transform:translateY(-1px);box-shadow:0 2px 4px #8b5cf64d}.password-strength{margin-bottom:1rem;padding:.75rem;background:#f8fafc;border-radius:4px}.strength-indicator{padding:.5rem;border-radius:4px;text-align:center;font-weight:600;font-size:.875rem;margin-bottom:.5rem}.strength-indicator.strong{background:#d1fae5;color:#059669}.strength-indicator.medium{background:#fef3c7;color:#d97706}.strength-indicator.weak{background:#fee2e2;color:#dc2626}.strength-requirements{display:flex;flex-direction:column;gap:.25rem;font-size:.8125rem}.strength-requirements .met{color:#059669;font-weight:500}.strength-requirements .unmet{color:#94a3b8}.warning-box{background:#fef3c7;border:1px solid #fbbf24;color:#92400e;padding:.75rem 1rem;border-radius:4px;margin-bottom:1rem;font-size:.875rem;display:flex;align-items:start;gap:.5rem}.warning-box strong{display:inline-block;margin-right:.25rem}.cancel-btn,.confirm-btn{padding:.75rem 1.5rem;border:none;border-radius:4px;cursor:pointer;font-weight:500;font-size:.875rem;transition:all .2s}.cancel-btn{background:#e2e8f0;color:#475569}.cancel-btn:hover{background:#cbd5e1}.confirm-btn{background:#3b82f6;color:#fff}.confirm-btn:hover:not(:disabled){background:#2563eb;transform:translateY(-1px);box-shadow:0 2px 4px #3b82f64d}.confirm-btn:disabled{background:#cbd5e1;color:#94a3b8;cursor:not-allowed;transform:none}@media(max-width:768px){.password-manager{padding:1rem}.user-list table{font-size:.8125rem}.user-list th,.user-list td{padding:.5rem}.modal-content{width:95%;margin:.5rem}.password-actions{flex-direction:column}.generate-btn,.copy-btn{width:100%;min-width:0}.modal-footer{flex-direction:column-reverse}.cancel-btn,.confirm-btn{width:100%}}.reauth-modal-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:10000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:fadeIn .3s ease-out}.reauth-modal{background:#fff;border-radius:16px;padding:2rem;width:100%;max-width:420px;margin:1rem;box-shadow:0 20px 60px #0000004d,0 8px 24px #0003;animation:slideIn .3s ease-out;border:2px solid #d4af37}@keyframes slideIn{0%{opacity:0;transform:translateY(-20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.reauth-header{text-align:center;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:2px solid #f3f4f6}.reauth-header h3{margin:0 0 .5rem;color:#1f2937;font-size:1.25rem;font-weight:600}.reauth-header p{margin:0;color:#6b7280;font-size:.875rem;font-weight:500}.reauth-form{display:flex;flex-direction:column;gap:1rem}.reauth-field{display:flex;flex-direction:column;gap:.5rem}.reauth-field label{font-weight:600;color:#374151;font-size:.875rem}.reauth-input{padding:.75rem 1rem;border:2px solid #d1d5db;border-radius:8px;font-size:1rem;transition:all .2s ease;background:#fff}.reauth-input:focus{outline:none;border-color:#d4af37;box-shadow:0 0 0 3px #d4af371a}.reauth-input-disabled{background:#f9fafb;color:#6b7280;cursor:not-allowed}.reauth-input:disabled{background:#f9fafb;color:#9ca3af;cursor:not-allowed}.reauth-error{background:linear-gradient(135deg,#fef2f2,#fee2e2);color:#dc2626;padding:.75rem 1rem;border-radius:8px;font-size:.875rem;font-weight:500;border-left:4px solid #dc2626;animation:shake .5s ease-in-out}.reauth-success{background:linear-gradient(135deg,#f0fdf4,#dcfce7);color:#16a34a;padding:.75rem 1rem;border-radius:8px;font-size:.875rem;font-weight:500;border-left:4px solid #16a34a;animation:successPulse .6s ease-in-out}@keyframes successPulse{0%{transform:scale(1);opacity:0}50%{transform:scale(1.02);opacity:1}to{transform:scale(1);opacity:1}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-4px)}75%{transform:translate(4px)}}.reauth-actions{display:flex;gap:.75rem;margin-top:1rem}.reauth-submit-btn{flex:1;background:linear-gradient(135deg,#d4af37,#b8941f);color:#fff;border:none;padding:.875rem 1.5rem;border-radius:8px;font-weight:600;font-size:.875rem;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;gap:.5rem}.reauth-submit-btn:hover:not(:disabled){background:linear-gradient(135deg,#b8941f,#9d7c1a);transform:translateY(-1px);box-shadow:0 4px 12px #d4af374d}.reauth-submit-btn:disabled{background:#d1d5db;color:#9ca3af;cursor:not-allowed;transform:none;box-shadow:none}.reauth-cancel-btn{flex:1;background:#f3f4f6;color:#374151;border:2px solid #d1d5db;padding:.875rem 1.5rem;border-radius:8px;font-weight:600;font-size:.875rem;cursor:pointer;transition:all .2s ease}.reauth-cancel-btn:hover:not(:disabled){background:#e5e7eb;border-color:#9ca3af;transform:translateY(-1px)}.reauth-cancel-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.reauth-redirect-btn{flex:1;background:linear-gradient(135deg,#dc2626,#b91c1c);color:#fff;border:none;padding:.875rem 1.5rem;border-radius:8px;font-weight:600;font-size:.875rem;cursor:pointer;transition:all .2s ease}.reauth-redirect-btn:hover{background:linear-gradient(135deg,#b91c1c,#991b1b);transform:translateY(-1px);box-shadow:0 4px 12px #dc26264d}.reauth-spinner{width:16px;height:16px;border:2px solid transparent;border-top:2px solid currentColor;border-radius:50%;animation:spin 1s linear infinite}.reauth-security-note{text-align:center;margin-top:1rem;padding-top:1rem;border-top:1px solid #e5e7eb}.reauth-security-note small{color:#6b7280;font-size:.75rem}@media(max-width:480px){.reauth-modal{margin:.5rem;padding:1.5rem}.reauth-actions{flex-direction:column}.reauth-submit-btn,.reauth-cancel-btn,.reauth-redirect-btn{flex:none}}@media(prefers-color-scheme:dark){.reauth-modal{background:#1f2937;border-color:#d4af37}.reauth-header h3{color:#f9fafb}.reauth-header p{color:#d1d5db}.reauth-field label{color:#e5e7eb}.reauth-input{background:#374151;border-color:#4b5563;color:#f9fafb}.reauth-input-disabled{background:#4b5563;color:#9ca3af}.reauth-cancel-btn{background:#374151;color:#e5e7eb;border-color:#4b5563}.reauth-security-note small{color:#9ca3af}}.session-extension-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:9999;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:sessionFadeIn .3s ease-out}@keyframes sessionFadeIn{0%{opacity:0}to{opacity:1}}.session-extension-modal{background:#fff;border-radius:16px;padding:2rem;width:100%;max-width:450px;margin:1rem;box-shadow:0 20px 60px #00000040,0 8px 24px #00000026;animation:sessionSlideIn .3s ease-out;border:3px solid #10b981}@keyframes sessionSlideIn{0%{opacity:0;transform:translateY(-20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.session-extension-header strong{font-family:Courier New,monospace;font-size:1.1em;color:#059669;background:#ecfdf5;padding:.25rem .5rem;border-radius:6px;border:1px solid #d1fae5}.session-extension-header strong.expired{color:#dc2626;background:#fef2f2;border-color:#fecaca;animation:expiredPulse 1s infinite}@keyframes expiredPulse{0%,to{opacity:1}50%{opacity:.7}}.expired-warning{color:#dc2626;font-weight:700;margin-top:.5rem;padding:.5rem;background:#fef2f2;border:1px solid #fecaca;border-radius:6px;text-align:center}.session-extension-header{text-align:center;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:2px solid #f0fdf4}.session-extension-header h3{margin:0 0 .5rem;color:#065f46;font-size:1.25rem;font-weight:600}.session-extension-header p{margin:0;color:#374151;font-size:.95rem}.session-extension-header strong{color:#dc2626;font-weight:700}.session-extension-content{margin-bottom:1.5rem}.session-extension-content>p{text-align:center;color:#4b5563;font-size:.95rem;margin-bottom:1.5rem}.session-extension-form{display:flex;flex-direction:column}.session-field{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem}.session-field label{font-weight:600;color:#374151;font-size:.875rem}.session-input{padding:.75rem 1rem;border:2px solid #d1d5db;border-radius:8px;font-size:1rem;transition:all .2s ease;background:#fff}.session-input:focus{outline:none;border-color:#10b981;box-shadow:0 0 0 3px #10b9811a}.session-input-disabled{background:#f9fafb;color:#6b7280;cursor:not-allowed}.session-input:disabled{background:#f9fafb;color:#9ca3af;cursor:not-allowed}.session-error{background:linear-gradient(135deg,#fef2f2,#fee2e2);color:#dc2626;padding:.75rem 1rem;border-radius:8px;font-size:.875rem;font-weight:500;border-left:4px solid #dc2626;margin-bottom:1rem;animation:sessionShake .5s ease-in-out}@keyframes sessionShake{0%,to{transform:translate(0)}25%{transform:translate(-3px)}75%{transform:translate(3px)}}.session-extension-actions{display:flex;flex-direction:column;gap:.75rem}.session-extend-btn{background:linear-gradient(135deg,#10b981,#059669);color:#fff;border:none;padding:1rem 1.5rem;border-radius:10px;font-weight:600;font-size:.95rem;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;gap:.5rem;box-shadow:0 4px 12px #10b9814d}.session-extend-btn:hover:not(:disabled){background:linear-gradient(135deg,#059669,#047857);transform:translateY(-2px);box-shadow:0 6px 16px #10b98166}.session-extend-btn:disabled{background:#d1d5db;color:#9ca3af;cursor:not-allowed;transform:none;box-shadow:none}.session-cancel-btn{background:#f3f4f6;color:#374151;border:2px solid #d1d5db;padding:.875rem 1.5rem;border-radius:8px;font-weight:600;font-size:.875rem;cursor:pointer;transition:all .2s ease}.session-cancel-btn:hover:not(:disabled){background:#e5e7eb;border-color:#9ca3af;transform:translateY(-1px)}.session-cancel-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.session-logout-btn{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;border:none;padding:.875rem 1.5rem;border-radius:8px;font-weight:600;font-size:.875rem;cursor:pointer;transition:all .2s ease}.session-logout-btn:hover{background:linear-gradient(135deg,#dc2626,#b91c1c);transform:translateY(-1px);box-shadow:0 4px 12px #ef44444d}.session-spinner{width:16px;height:16px;border:2px solid transparent;border-top:2px solid currentColor;border-radius:50%;animation:sessionSpin 1s linear infinite}@keyframes sessionSpin{to{transform:rotate(360deg)}}.session-extension-note{text-align:center;margin-top:1.5rem;padding-top:1rem;border-top:1px solid #e5e7eb}.session-extension-note small{color:#10b981;font-size:.8rem;font-weight:500}@media(max-width:480px){.session-extension-modal{margin:.5rem;padding:1.5rem}.session-extension-actions{gap:.5rem}}.session-extension-success{animation:sessionSuccess .6s ease-out}@keyframes sessionSuccess{0%{transform:scale(1)}50%{transform:scale(1.05)}to{transform:scale(1)}}.session-extension-urgent{animation:sessionPulse 2s infinite}@keyframes sessionPulse{0%,to{border-color:#10b981;box-shadow:0 0 #10b98166}50%{border-color:#ef4444;box-shadow:0 0 0 8px #ef44441a}}@media(prefers-color-scheme:dark){.session-extension-modal{background:#1f2937;border-color:#10b981}.session-extension-header h3{color:#10b981}.session-extension-header p{color:#d1d5db}.session-extension-content>p{color:#9ca3af}.session-field label{color:#e5e7eb}.session-input{background:#374151;border-color:#4b5563;color:#f9fafb}.session-input-disabled{background:#4b5563;color:#9ca3af}.session-cancel-btn{background:#374151;color:#e5e7eb;border-color:#4b5563}.session-extension-note small{color:#10b981}}.live-preview-container{height:100%;display:flex;flex-direction:column;background:#ffffff05;border-radius:16px;border:1px solid rgba(255,255,255,.1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);overflow:hidden}.live-preview-header{padding:1rem 1.5rem;border-bottom:1px solid rgba(255,255,255,.1);display:flex;justify-content:space-between;align-items:center;background:#ffffff0d}.live-preview-header h3{margin:0;color:#d4af37;font-size:1.1rem;font-weight:600}.preview-badge{background:#d4af3733;color:#d4af37;padding:.25rem .75rem;border-radius:12px;font-size:.75rem;font-weight:500;border:1px solid rgba(212,175,55,.3)}.certificate-preview{flex:1;overflow-y:auto;padding:1rem;background:#fff;margin:1rem;border-radius:12px;box-shadow:inset 1px 1px 4px #ddd9,inset -1px -1px 4px #fffc,0 8px 25px #00000026,0 4px 12px #0000001a;font-size:.8rem;line-height:1.3}.certificate-preview .logo{text-align:center;margin-bottom:1rem}.certificate-preview .logo img{width:100%;max-width:180px;height:auto}.certificate-preview .section{margin-bottom:1rem;opacity:1;transform:none}.certificate-preview .field{display:flex;justify-content:space-between;flex-wrap:wrap;padding:.4rem 0;border-bottom:1px solid #eee;font-size:.75rem}.certificate-preview .field strong{flex:0 0 48%;text-align:left;color:#004080;font-size:.75rem}.certificate-preview .field span{flex:0 0 48%;text-align:right;font-size:.75rem}.certificate-preview .gemstone-specifications{text-align:center!important;flex-direction:column!important}.certificate-preview .gemstone-specifications strong{flex:none!important;text-align:center!important;margin-bottom:.5rem;color:#004080;display:block;font-size:.75rem}.certificate-preview .gemstone-specs-content{flex:none!important;text-align:center!important}.certificate-preview .gemstone-spec-line{margin-bottom:.5rem;line-height:1.3;color:#333;font-weight:500;font-size:.7rem}.certificate-preview .gemstone-spec-line:last-child{margin-bottom:0}.certificate-preview .image-box{width:100%;max-width:200px;height:200px;margin:.75rem auto;border:2px solid #004080;border-radius:12px;display:flex;justify-content:center;align-items:center;overflow:hidden;box-shadow:inset 0 1px 3px #fff9,inset 0 -1px 3px #ccc6,0 4px 12px #0000001a}.certificate-preview .image-box img{max-width:100%;max-height:100%;object-fit:cover}.certificate-preview .no-image{display:flex;align-items:center;justify-content:center;height:100%;color:#666;font-style:italic;text-align:center;padding:1rem;font-size:.7rem}.certificate-preview .info-block{background-color:#f8f9fa;padding:.75rem;border-radius:6px;margin:.75rem 0;font-size:.65rem;line-height:1.4;color:#444}.certificate-preview .info-block strong{display:block;margin-bottom:.4rem;color:#333;font-size:.7rem}.certificate-preview .abbreviations{border:1px solid #333;padding:.75rem;margin-top:1rem;border-radius:6px;background-color:#fdfdfd}.certificate-preview .abbreviations h3{color:red;font-weight:700;margin:0 0 .5rem;font-size:.75rem}.certificate-preview .abbreviations .abbreviation-lines div{margin-bottom:.4rem;line-height:1.3;padding:.2rem 0;border-bottom:1px solid #eee;font-size:.7rem}.certificate-preview .abbreviations .abbreviation-lines div:last-child{border-bottom:none;margin-bottom:0}.certificate-preview .footer{font-size:.6rem;text-align:center;margin-top:1rem;border-top:1px solid #ccc;padding-top:.75rem;color:#666;line-height:1.3}.certificate-preview .footer a{color:#004080;text-decoration:none}.certificate-preview .footer a:hover{text-decoration:underline}.certificate-preview::-webkit-scrollbar{width:6px}.certificate-preview::-webkit-scrollbar-track{background:#0000001a;border-radius:3px}.certificate-preview::-webkit-scrollbar-thumb{background:#d4af3780;border-radius:3px}.certificate-preview::-webkit-scrollbar-thumb:hover{background:#d4af37b3}.certificate-preview .section{transition:all .2s ease-in-out}.certificate-preview:empty:before{content:"Start typing to see your certificate preview...";display:flex;align-items:center;justify-content:center;height:100%;color:#666;font-style:italic;text-align:center}@keyframes marching-ants{0%{background-position:0 0,0 100%,0 0,100% 0}to{background-position:20px 0,-20px 100%,0 -20px,100% 20px}}:root{--rc-drag-handle-size: 12px;--rc-drag-handle-mobile-size: 24px;--rc-drag-handle-bg-colour: rgba(0, 0, 0, .2);--rc-drag-bar-size: 6px;--rc-border-color: rgba(255, 255, 255, .7);--rc-focus-color: #0088ff}.ReactCrop{position:relative;display:inline-block;cursor:crosshair;max-width:100%}.ReactCrop *,.ReactCrop *:before,.ReactCrop *:after{box-sizing:border-box}.ReactCrop--disabled,.ReactCrop--locked{cursor:inherit}.ReactCrop__child-wrapper{overflow:hidden;max-height:inherit}.ReactCrop__child-wrapper>img,.ReactCrop__child-wrapper>video{display:block;max-width:100%;max-height:inherit}.ReactCrop:not(.ReactCrop--disabled) .ReactCrop__child-wrapper>img,.ReactCrop:not(.ReactCrop--disabled) .ReactCrop__child-wrapper>video{touch-action:none}.ReactCrop:not(.ReactCrop--disabled) .ReactCrop__crop-selection{touch-action:none}.ReactCrop__crop-mask{position:absolute;inset:0;pointer-events:none;width:calc(100% + .5px);height:calc(100% + .5px)}.ReactCrop__crop-selection{position:absolute;top:0;left:0;transform:translateZ(0);cursor:move}.ReactCrop--disabled .ReactCrop__crop-selection{cursor:inherit}.ReactCrop--circular-crop .ReactCrop__crop-selection{border-radius:50%}.ReactCrop--circular-crop .ReactCrop__crop-selection:after{pointer-events:none;content:"";position:absolute;inset:-1px;border:1px solid var(--rc-border-color);opacity:.3}.ReactCrop--no-animate .ReactCrop__crop-selection{outline:1px dashed white}.ReactCrop__crop-selection:not(.ReactCrop--no-animate .ReactCrop__crop-selection){animation:marching-ants 1s;background-image:linear-gradient(to right,#fff 50%,#444 50%),linear-gradient(to right,#fff 50%,#444 50%),linear-gradient(to bottom,#fff 50%,#444 50%),linear-gradient(to bottom,#fff 50%,#444 50%);background-size:10px 1px,10px 1px,1px 10px,1px 10px;background-position:0 0,0 100%,0 0,100% 0;background-repeat:repeat-x,repeat-x,repeat-y,repeat-y;color:#fff;animation-play-state:running;animation-timing-function:linear;animation-iteration-count:infinite}.ReactCrop__crop-selection:focus{outline:2px solid var(--rc-focus-color);outline-offset:-1px}.ReactCrop--invisible-crop .ReactCrop__crop-mask,.ReactCrop--invisible-crop .ReactCrop__crop-selection{display:none}.ReactCrop__rule-of-thirds-vt:before,.ReactCrop__rule-of-thirds-vt:after,.ReactCrop__rule-of-thirds-hz:before,.ReactCrop__rule-of-thirds-hz:after{content:"";display:block;position:absolute;background-color:#fff6}.ReactCrop__rule-of-thirds-vt:before,.ReactCrop__rule-of-thirds-vt:after{width:1px;height:100%}.ReactCrop__rule-of-thirds-vt:before{left:33.3333333333%}.ReactCrop__rule-of-thirds-vt:after{left:66.6666666667%}.ReactCrop__rule-of-thirds-hz:before,.ReactCrop__rule-of-thirds-hz:after{width:100%;height:1px}.ReactCrop__rule-of-thirds-hz:before{top:33.3333333333%}.ReactCrop__rule-of-thirds-hz:after{top:66.6666666667%}.ReactCrop__drag-handle{position:absolute;width:var(--rc-drag-handle-size);height:var(--rc-drag-handle-size);background-color:var(--rc-drag-handle-bg-colour);border:1px solid var(--rc-border-color)}.ReactCrop__drag-handle:focus{background:var(--rc-focus-color)}.ReactCrop .ord-nw{top:0;left:0;transform:translate(-50%,-50%);cursor:nw-resize}.ReactCrop .ord-n{top:0;left:50%;transform:translate(-50%,-50%);cursor:n-resize}.ReactCrop .ord-ne{top:0;right:0;transform:translate(50%,-50%);cursor:ne-resize}.ReactCrop .ord-e{top:50%;right:0;transform:translate(50%,-50%);cursor:e-resize}.ReactCrop .ord-se{bottom:0;right:0;transform:translate(50%,50%);cursor:se-resize}.ReactCrop .ord-s{bottom:0;left:50%;transform:translate(-50%,50%);cursor:s-resize}.ReactCrop .ord-sw{bottom:0;left:0;transform:translate(-50%,50%);cursor:sw-resize}.ReactCrop .ord-w{top:50%;left:0;transform:translate(-50%,-50%);cursor:w-resize}.ReactCrop__disabled .ReactCrop__drag-handle{cursor:inherit}.ReactCrop__drag-bar{position:absolute}.ReactCrop__drag-bar.ord-n{top:0;left:0;width:100%;height:var(--rc-drag-bar-size);transform:translateY(-50%)}.ReactCrop__drag-bar.ord-e{right:0;top:0;width:var(--rc-drag-bar-size);height:100%;transform:translate(50%)}.ReactCrop__drag-bar.ord-s{bottom:0;left:0;width:100%;height:var(--rc-drag-bar-size);transform:translateY(50%)}.ReactCrop__drag-bar.ord-w{top:0;left:0;width:var(--rc-drag-bar-size);height:100%;transform:translate(-50%)}.ReactCrop--new-crop .ReactCrop__drag-bar,.ReactCrop--new-crop .ReactCrop__drag-handle,.ReactCrop--fixed-aspect .ReactCrop__drag-bar,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-n,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-e,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-s,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-w{display:none}@media(pointer:coarse){.ReactCrop .ord-n,.ReactCrop .ord-e,.ReactCrop .ord-s,.ReactCrop .ord-w{display:none}.ReactCrop__drag-handle{width:var(--rc-drag-handle-mobile-size);height:var(--rc-drag-handle-mobile-size)}}.staging-image-upload{margin-top:1rem;padding:1.5rem;background:#f9fafb;border-radius:12px;border:1px solid #e5e7eb}.sync-step,.image-selection-step{animation:fadeIn .3s ease-in}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.sync-step h4,.image-selection-step h4{margin:0 0 .5rem;color:#1f2937;font-size:1.125rem;font-weight:600}.sync-step p{color:#6b7280;margin:0 0 1rem;font-size:.875rem}.error-message{background:#fef2f2;border:1px solid #fecaca;border-radius:8px;padding:.75rem;margin-bottom:1rem;color:#991b1b;font-size:.875rem}.sync-actions{display:flex;gap:.75rem;margin-top:1rem}.sync-btn{padding:.75rem 1.5rem;border:none;border-radius:8px;font-size:.9375rem;font-weight:600;cursor:pointer;transition:all .2s ease;display:inline-flex;align-items:center;gap:.5rem}.sync-btn.primary{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;box-shadow:0 2px 8px #3b82f64d}.sync-btn.primary:hover{transform:translateY(-2px);box-shadow:0 4px 12px #3b82f666}.sync-btn.secondary{background:#fff;color:#6b7280;border:1px solid #d1d5db}.sync-btn.secondary:hover{background:#f9fafb;border-color:#9ca3af}.sync-btn:disabled{opacity:.6;cursor:not-allowed;transform:none!important}.sync-step.syncing{text-align:center}.sync-progress{padding:2rem}.sync-progress .spinner{width:48px;height:48px;border:4px solid #e5e7eb;border-top-color:#3b82f6;border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 1rem}.sync-progress p{color:#6b7280;margin:.5rem 0}.sync-details{margin-top:1rem;padding:1rem;background:#fff;border-radius:8px;text-align:left}.sync-details p{margin:.25rem 0;color:#374151;font-size:.875rem}.staging-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;max-height:500px;overflow-y:auto;padding:1rem;margin:1rem 0;background:#fff;border:1px solid #e5e7eb;border-radius:8px}.grid-item{position:relative;cursor:pointer;border:3px solid transparent;border-radius:12px;padding:.75rem;background:#fff;transition:all .2s ease;overflow:hidden;box-shadow:0 2px 4px #0000000d}.grid-item:hover{border-color:#3b82f6;transform:scale(1.03);box-shadow:0 6px 16px #3b82f633}.grid-item.selected{border-color:#10b981;background:#10b9810d;box-shadow:0 6px 20px #10b98166}.grid-item-image-container{position:relative;width:100%;padding-top:100%;overflow:hidden;border-radius:8px;background:linear-gradient(135deg,#f3f4f6,#e5e7eb);margin-bottom:.75rem}.grid-item img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;transition:transform .3s ease}.grid-item:hover img{transform:scale(1.05)}.grid-item img[src=""]{display:none}.grid-item-image-container:before{content:"🖼️";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:3rem;opacity:.3}.image-info{margin-top:.5rem;text-align:center}.filename{font-size:.8125rem;font-weight:500;color:#374151;word-break:break-all;margin-bottom:.25rem;line-height:1.3}.filesize{font-size:.75rem;color:#9ca3af}.selected-badge{position:absolute;top:.75rem;right:.75rem;background:#10b981;color:#fff;width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.25rem;font-weight:700;box-shadow:0 2px 8px #10b98166;animation:popIn .3s ease}@keyframes popIn{0%{transform:scale(0)}50%{transform:scale(1.2)}to{transform:scale(1)}}.loading-images{text-align:center;padding:3rem}.loading-images .spinner{width:48px;height:48px;border:4px solid #e5e7eb;border-top-color:#3b82f6;border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 1rem}.loading-images p{color:#6b7280;margin:0}.no-images{text-align:center;padding:3rem;color:#9ca3af}.no-images p{font-size:1rem;margin:0 0 1.5rem}.selection-actions{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-top:1rem;padding-top:1rem;border-top:1px solid #e5e7eb}.done-section{display:flex;align-items:center;gap:1rem;padding:.75rem 1rem;background:#f0fdf4;border:1px solid #86efac;border-radius:8px;animation:slideInRight .3s ease}@keyframes slideInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}.selected-info{margin:0;color:#059669;font-size:.875rem}.selected-info strong{font-weight:600}.done-btn{background:linear-gradient(135deg,#10b981,#059669);padding:.625rem 1.5rem;font-size:.9375rem}.done-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #10b98166}.sync-stats{display:flex;gap:2rem;padding:1rem;background:#3b82f60d;border:1px solid rgba(59,130,246,.1);border-radius:8px;margin-top:1rem}.stat-item{display:flex;flex-direction:column;gap:.25rem}.stat-label{font-size:.75rem;color:#6b7280;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.stat-value{font-size:1.5rem;font-weight:700;color:#1f2937}.stat-value.success{color:#10b981}.stat-value.error{color:#ef4444}.console-logs{margin-top:1.5rem;border:1px solid #d1d5db;border-radius:8px;background:#1e1e1e;overflow:hidden}.console-header{padding:.5rem .75rem;background:#2c3e50;border-bottom:1px solid #34495e;display:flex;justify-content:space-between;align-items:center;font-family:Courier New,monospace;font-size:.75rem;color:#ecf0f1;font-weight:600}.clear-logs-btn{padding:.25rem .5rem;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:4px;color:#ecf0f1;font-size:.6875rem;cursor:pointer;transition:all .2s}.clear-logs-btn:hover:not(:disabled){background:#fff3}.clear-logs-btn:disabled{opacity:.5;cursor:not-allowed}.console-content{height:250px;overflow-y:auto;padding:.625rem;font-family:Courier New,monospace;font-size:.75rem;line-height:1.6}.console-empty{color:#7f8c8d;text-align:center;padding:2.5rem;font-style:italic}.console-line{margin-bottom:.25rem;display:flex;gap:.5rem;align-items:flex-start}.console-timestamp{color:#95a5a6;min-width:80px;flex-shrink:0;font-size:.6875rem}.console-level{color:#3498db;min-width:50px;flex-shrink:0;font-weight:600}.console-message{color:#ecf0f1;flex:1;word-break:break-word}.console-line.error .console-level{color:#e74c3c}.console-line.error .console-message{color:#e74c3c;font-weight:500}.console-line.info .console-level{color:#3498db}.console-line.warn .console-level,.console-line.warn .console-message{color:#f39c12}.pagination-controls{display:flex;justify-content:center;align-items:center;gap:1rem;padding:.75rem 0}.pagination-btn{padding:.5rem 1.25rem!important;font-size:.875rem!important;min-width:80px}.pagination-info{font-size:.875rem;color:#6b7280;font-weight:500;min-width:160px;text-align:center}.image-loading{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:#9ca3af;font-size:.8125rem}.image-spinner{width:28px;height:28px;border:3px solid #e5e7eb;border-top-color:#3b82f6;border-radius:50%;animation:spin 1s linear infinite}@media(max-width:1024px){.staging-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:640px){.staging-grid{grid-template-columns:1fr;max-height:400px}.selection-actions{flex-direction:column;align-items:stretch}.done-section{flex-direction:column;text-align:center}}.upload-method-toggle{display:flex;gap:.5rem;margin-bottom:1.5rem;padding:.5rem;background:#fff;border-radius:10px;border:1px solid #e5e7eb}.method-btn{flex:1;padding:.875rem 1rem;border:2px solid transparent;background:transparent;border-radius:8px;cursor:pointer;transition:all .2s ease;font-weight:600;font-size:.9375rem;color:#6b7280}.method-btn:hover{background:#f9fafb;color:#374151}.method-btn.active{border-color:#3b82f6;background:#3b82f614;color:#2563eb;box-shadow:0 2px 8px #3b82f626}.staging-selector-placeholder{text-align:center;padding:3rem;background:#fff;border:2px dashed #d1d5db;border-radius:12px;color:#6b7280}.staging-selector-placeholder p:first-child{font-size:1.25rem;margin:0 0 .5rem}.certificate-creation-container{min-height:100vh;padding:1rem;background:linear-gradient(135deg,#0f172a,#1e293b,#0c1220,#1e293b,#0f172a),radial-gradient(ellipse 800px 600px at var(--mouse-x, 50%) var(--mouse-y, 50%),rgba(212,175,55,.15) 0%,transparent 50%),radial-gradient(ellipse 600px 400px at calc(100% - var(--mouse-x, 50%)) calc(100% - var(--mouse-y, 50%)),rgba(184,134,11,.2) 0%,transparent 60%),radial-gradient(ellipse 1000px 800px at var(--mouse-x, 50%) var(--mouse-y, 50%),rgba(59,130,246,.08) 0%,transparent 70%);background-size:100% 100%,150% 150%,120% 120%,180% 180%;transition:background-position .3s ease-out;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;position:relative}.split-screen-layout{display:grid;grid-template-columns:1.5fr 2px 1fr;gap:4rem;max-width:1600px;margin:0 auto;height:calc(100vh - 2rem);align-items:stretch;overflow:hidden}.split-screen-divider{background:linear-gradient(180deg,#ffffff1a,#ffffff0d);position:relative}.top-navigation{position:fixed;top:1rem;right:1rem;z-index:9999;display:flex;gap:.75rem;align-items:center}.creation-form-side{overflow-y:auto;overflow-x:hidden;padding-right:1rem;scroll-behavior:smooth}.certificate-creation-panel{padding:1rem 0}.certificate-properties-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:.75rem}.abbreviation-lines-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:.75rem}.design-template-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:.75rem}.design-template-grid .form-field{margin-bottom:0}.creation-form-side{height:100%;overflow:hidden;display:flex;flex-direction:column;padding:2rem}.split-screen-divider{width:2px;height:100%;background:linear-gradient(to bottom,transparent 0%,rgba(212,175,55,.3) 20%,rgba(212,175,55,.6) 50%,rgba(212,175,55,.3) 80%,transparent 100%);border-radius:1px;position:relative}.split-screen-divider:before{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:8px;height:8px;background:#d4af37;border-radius:50%;box-shadow:0 0 10px #d4af3780}.live-preview-side{height:100%;overflow:hidden;display:flex;flex-direction:column;padding:2rem}.certificate-properties-grid{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto auto;gap:1rem;margin-top:.75rem}.certificate-properties-grid .form-field{margin-bottom:0}.metal-properties-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:.75rem}.metal-properties-grid .form-field{margin-bottom:0}.gemstone-properties-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:.75rem}.gemstone-properties-grid .form-field{margin-bottom:0}.form-section>.form-field:has(.checkbox-grid){width:100%;max-width:none}.comment-lines-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:.75rem}.comment-lines-grid .form-field{margin-bottom:0}.abbreviation-lines-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin-top:.75rem}.abbreviation-lines-grid .form-field{margin-bottom:0}.selection-summary-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:.75rem}.selection-summary-grid .gemstone-summary-item{margin-bottom:0}@media(max-width:1200px){.split-screen-layout{grid-template-columns:1fr;grid-template-rows:auto auto;gap:1rem;height:auto}.split-screen-divider{display:none}.creation-form-side,.live-preview-side{height:auto;min-height:50vh}.certificate-creation-panel{height:auto;max-height:none}}@media(max-width:1024px){.gemstone-properties-grid,.comment-lines-grid{grid-template-columns:1fr}.abbreviation-lines-grid{grid-template-columns:1fr 1fr}.checkbox-grid,.radio-group,.selection-summary-grid{grid-template-columns:1fr}}@media(max-width:768px){.certificate-creation-container{padding:.5rem}.split-screen-layout{gap:.5rem}.certificate-creation-panel{padding:1rem}.certificate-properties-grid,.gemstone-properties-grid,.metal-properties-grid,.comment-lines-grid{grid-template-columns:1fr;gap:1rem}.abbreviation-lines-grid{grid-template-columns:1fr;gap:.75rem}.checkbox-grid,.radio-group,.selection-summary-grid{grid-template-columns:1fr}.design-template-grid{grid-template-columns:1fr;gap:1rem}}.certificate-creation-panel{width:100%;flex:1;min-height:0;border-radius:16px;background:linear-gradient(145deg,#fefbf5f2,#faf5ebe6);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(240,230,210,.6);box-shadow:0 25px 50px #00000040,0 15px 30px #00000026,0 8px 16px #0000001a,inset 0 1px #fffcf5cc,inset 0 -1px #d4af371a;padding:1rem;position:relative;overflow:hidden;overflow-y:auto;transition:all .4s cubic-bezier(.4,0,.2,1)}.certificate-creation-panel:hover{transform:translateY(-2px);box-shadow:0 35px 70px #0000004d,0 20px 40px #0003,0 12px 24px #00000026,inset 0 1px #fffcf5e6,inset 0 -1px #d4af3726,0 0 0 1px #d4af371a}.certificate-creation-panel:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(59,130,246,.3),transparent)}.logo-section{text-align:center;margin-bottom:2rem;padding-bottom:1rem;border-bottom:1px solid rgba(212,175,55,.2)}.egl-logo{width:100%;max-width:300px;height:auto;margin-bottom:1rem;transition:transform .4s ease,filter .4s ease;filter:drop-shadow(0 0 5px rgba(0,64,128,.2))}.egl-logo:hover{transform:scale(1.05);filter:drop-shadow(0 0 10px rgba(0,64,128,.3))}.logo-section h1{font-size:1.5rem;font-weight:700;color:#000;margin:0 0 .5rem}.logo-section p{color:#64748b;font-size:.9rem;margin:0}.session-warning{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff;padding:.75rem 1rem;border-radius:8px;margin-bottom:1rem;font-weight:500;text-align:center;box-shadow:0 2px 8px #f59e0b4d;animation:pulse 2s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.8}}.status-messages{margin-bottom:1.5rem}.status-message{padding:.75rem 1rem;border-radius:8px;margin-bottom:.5rem;font-size:.875rem;font-weight:500;border-left:4px solid;box-shadow:0 4px 12px #0000001a,0 2px 6px #0000000d;transition:all .3s cubic-bezier(.4,0,.2,1)}.status-message:hover{transform:translateY(-1px);box-shadow:0 8px 20px #00000026,0 4px 10px #0000001a}.status-message.success{background:#22c55e1a;color:#166534;border-left-color:#22c55e}.status-message.error{background:#ef44441a;color:#dc2626;border-left-color:#ef4444}.status-message.warning{background:#f59e0b1a;color:#d97706;border-left-color:#f59e0b}.status-message.info{background:#3b82f61a;color:#2563eb;border-left-color:#3b82f6}.form-section{margin-bottom:1rem;padding:.75rem;background:#ffffffb3;border-radius:12px;border:1px solid rgba(212,175,55,.2)}.form-section h3{font-size:1.25rem;font-weight:600;color:#1e293b;margin:0 0 .75rem;padding-bottom:.4rem;border-bottom:1px solid rgba(212,175,55,.3)}.form-section h4{font-size:1rem;font-weight:600;color:#374151;margin:1rem 0 .75rem}.form-field{margin-bottom:.75rem;position:relative;padding:1rem;border-radius:12px;background:linear-gradient(145deg,#ffffffe6,#fefbf5cc);border:1px solid rgba(200,180,150,.3);box-shadow:0 8px 25px #00000014,0 4px 12px #0000000d,0 2px 6px #00000008,inset 0 1px #fff9;transition:all .3s cubic-bezier(.4,0,.2,1)}.form-field:hover{transform:translateY(-2px);box-shadow:0 15px 35px #0000001f,0 8px 20px #00000014,0 4px 10px #0000000d,inset 0 1px #fffc,0 0 0 1px #d4af371a}.form-field:focus-within{transform:translateY(-3px);box-shadow:0 20px 40px #00000026,0 12px 25px #0000001a,0 6px 15px #00000014,inset 0 1px #ffffffe6,0 0 0 2px #3b82f633}.form-field label{display:block;font-size:.875rem;font-weight:500;color:#374151;margin-bottom:.5rem}.form-field input[type=text],.form-field input[type=number]{width:100%;height:44px;background:linear-gradient(145deg,#fffffff2,#fefbf5e6);border:1px solid rgba(200,180,150,.4);border-radius:8px;padding:0 12px;font-size:14px;font-family:inherit;color:#374151;box-shadow:inset 0 2px 4px #0000000f,inset 0 1px 2px #0000000a,0 1px 3px #0000000d;transition:all .3s cubic-bezier(.4,0,.2,1);box-sizing:border-box;outline:none}.form-field input[type=text]:hover,.form-field input[type=number]:hover{transform:translateY(-1px);box-shadow:inset 0 2px 4px #0000000a,0 4px 12px #00000014,0 2px 6px #0000000d;border-color:#d4af3780}.form-field input[type=text]::placeholder,.form-field input[type=number]::placeholder{color:#6b7280b3}.form-field input[type=text]:focus,.form-field input[type=number]:focus{transform:translateY(-2px);border-color:#3b82f6;box-shadow:inset 0 2px 4px #00000008,0 8px 20px #3b82f626,0 4px 12px #3b82f61a,0 0 0 3px #3b82f61a}.form-field input.valid{border-color:#10b981!important;box-shadow:0 0 0 3px #10b9811a!important}.form-field input.invalid{border-color:#ef4444!important;box-shadow:0 0 0 3px #ef44441a!important}.form-field input.checking{border-color:#f59e0b!important;box-shadow:0 0 0 3px #f59e0b1a!important}.form-field input[type=text].invalid,.form-field input[type=number].invalid{border-color:#ef4444;background:#ef44440d}.form-field input[type=text]:disabled,.form-field input[type=number]:disabled,.disabled-field{background:#9ca3af1a;color:#6b7280;cursor:not-allowed}.input-with-suffix{position:relative;display:flex;align-items:center}.form-field:has(.suffix) input[type=text],.form-field:has(.suffix) input[type=number],.input-with-suffix input[type=text],.input-with-suffix input[type=number]{padding-right:80px}.form-field:has(.char-count) input[type=text],.form-field:has(.char-count) input[type=number]{padding-right:60px}.suffix{position:absolute;right:1rem;top:50%;transform:translateY(-50%);font-size:.875rem;color:#6b7280;pointer-events:none;z-index:10}.char-count{position:absolute;right:.5rem;top:50%;transform:translateY(-50%);font-size:.75rem;color:#6b7280;pointer-events:none;z-index:10}.input-with-suffix .suffix{position:absolute;right:1rem;top:50%;transform:translateY(-50%);font-size:.875rem;color:#6b7280;pointer-events:none;z-index:10}.input-with-suffix .char-count{position:absolute;right:.5rem;top:50%;transform:translateY(-50%);font-size:.75rem;color:#6b7280;pointer-events:none;z-index:10}.form-field:not(:has(.input-with-suffix)) .suffix{right:2.25rem;top:calc(2.625rem + 22px);transform:none}.form-field:not(:has(.input-with-suffix)) .char-count{right:1.75rem;top:calc(2.625rem + 22px);transform:none}.validation-message{margin-top:.25rem;padding:.5rem .75rem;border-radius:6px;display:flex;align-items:center;gap:.5rem;font-size:.875rem;font-weight:500;box-shadow:0 4px 12px #00000014,0 2px 6px #0000000d,inset 0 1px #ffffff4d;transition:all .3s cubic-bezier(.4,0,.2,1)}.validation-message:hover{transform:translateY(-1px);box-shadow:0 6px 18px #0000001f,0 3px 10px #00000014,inset 0 1px #ffffff80}.validation-message.valid{background:#f0fdf4!important;border:1px solid #bbf7d0!important;color:#166534!important}.validation-message.invalid{background:#fef2f2!important;border:1px solid #fecaca!important;color:#dc2626!important}.validation-message.checking{background:#fef3c7!important;border:1px solid #fde68a!important;color:#d97706!important}.validation-message.error{background:#fef2f2!important;border:1px solid #fecaca!important;color:#dc2626!important}.validation-message.warning{background:#fffbeb!important;border:1px solid #fed7aa!important;color:#d97706!important}.validation-message.caution{background:#fff7ed!important;border:1px solid #fdba74!important;color:#ea580c!important}.validation-message.success{background:#f0fdf4!important;border:1px solid #bbf7d0!important;color:#166534!important}.checkbox-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem;margin-top:.75rem;padding:1.5rem;border-radius:12px;background:linear-gradient(145deg,#ffffffb3,#fefbf599);border:1px solid rgba(200,180,150,.2);box-shadow:0 6px 20px #0000000f,0 3px 10px #0000000a,inset 0 1px #ffffff80;transition:all .3s cubic-bezier(.4,0,.2,1)}.checkbox-grid:hover{transform:translateY(-1px);box-shadow:0 10px 30px #0000001a,0 6px 15px #0000000f,inset 0 1px #ffffffb3,0 0 0 1px #d4af371a}.checkbox-item{display:flex;align-items:center;padding:1rem 1.25rem;border-radius:8px;background:linear-gradient(145deg,#ffffffe6,#fefbf5cc);border:1px solid rgba(200,180,150,.4);cursor:pointer;font-size:.95rem;font-weight:500;position:relative;box-shadow:0 3px 8px #0000000d,0 1px 4px #00000008,inset 0 1px #fff9;transition:all .3s cubic-bezier(.4,0,.2,1)}.checkbox-item:hover{transform:translateY(-2px);background:linear-gradient(145deg,#d4af3726,#fefbf5e6);border-color:#d4af3780;box-shadow:0 8px 20px #0000001a,0 4px 10px #0000000f,inset 0 1px #fffc,0 0 0 1px #d4af3733}.checkbox-item:active{transform:translateY(-1px);box-shadow:0 4px 12px #00000014,0 2px 6px #0000000d,inset 0 1px #ffffffb3}.checkbox-item input[type=checkbox]{width:18px;height:18px;margin-right:.75rem;cursor:pointer;accent-color:#d4af37;flex-shrink:0;position:relative;z-index:10;pointer-events:auto;opacity:1;visibility:visible}.checkbox-item span{flex:1;pointer-events:none}.checkbox-item input[type=checkbox]:checked+span{color:#1e293b;font-weight:600}.checkbox-item.checked{background:#d4af3726;border-color:#d4af3799}.checkbox-item input[type=checkbox]:disabled{opacity:.5;cursor:not-allowed}.checkbox-item:has(input[type=checkbox]:disabled){opacity:.6;cursor:not-allowed;background:#c8c8c81a}.radio-group{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:.5rem;padding:1rem;border-radius:12px;background:linear-gradient(145deg,#ffffffb3,#fefbf599);border:1px solid rgba(200,180,150,.2);box-shadow:0 6px 20px #0000000f,0 3px 10px #0000000a,inset 0 1px #ffffff80;transition:all .3s cubic-bezier(.4,0,.2,1)}.radio-group:hover{transform:translateY(-1px);box-shadow:0 10px 30px #0000001a,0 6px 15px #0000000f,inset 0 1px #ffffffb3,0 0 0 1px #d4af371a}.radio-group label{display:flex;align-items:center;padding:.75rem 1rem;border-radius:8px;background:linear-gradient(145deg,#ffffffe6,#fefbf5cc);border:1px solid rgba(200,180,150,.4);cursor:pointer;font-size:.875rem;font-weight:500;min-width:120px;position:relative;box-shadow:0 3px 8px #0000000d,0 1px 4px #00000008,inset 0 1px #fff9;transition:all .3s cubic-bezier(.4,0,.2,1)}.radio-group label:hover{transform:translateY(-2px);background:linear-gradient(145deg,#d4af3726,#fefbf5e6);border-color:#d4af3780;box-shadow:0 8px 20px #0000001a,0 4px 10px #0000000f,inset 0 1px #fffc,0 0 0 1px #d4af3733}.radio-group label:active{transform:translateY(-1px);box-shadow:0 4px 12px #00000014,0 2px 6px #0000000d,inset 0 1px #ffffffb3}.radio-group input[type=radio]{width:16px;height:16px;margin-right:.75rem;cursor:pointer;accent-color:#d4af37;flex-shrink:0;position:relative;z-index:10;pointer-events:auto}.radio-group span{flex:1;pointer-events:none}.radio-group input[type=radio]:checked+span{color:#1e293b;font-weight:600}.radio-group label.checked{background:#d4af3726;border-color:#d4af3799}.radio-group input[type=radio]:disabled{opacity:.5;cursor:not-allowed}.radio-group label:has(input[type=radio]:disabled){opacity:.6;cursor:not-allowed;background:#c8c8c81a}.single-select{margin-top:.5rem}.single-select label{display:flex;align-items:center;padding:1rem;border-radius:8px;background:#fefbf5cc;border:1px solid rgba(200,180,150,.4);cursor:pointer;transition:all .2s ease;font-weight:500;-webkit-user-select:none;user-select:none;position:relative}.single-select label:hover{background:#d4af371a;border-color:#d4af3780}.single-select input[type=radio]{width:18px;height:18px;margin-right:1rem;cursor:pointer;accent-color:#d4af37;flex-shrink:0;position:relative;z-index:10;pointer-events:auto}.single-select span{flex:1;pointer-events:none}.single-select input[type=radio]:checked+span{color:#1e293b;font-weight:600}.single-select label:has(input[type=radio]:checked){background:#d4af3733;border-color:#d4af37;box-shadow:0 0 0 2px #d4af3733}.selected-types{margin-top:.5rem;padding:.5rem;background:#d4af371a;border-radius:6px;font-size:.875rem;color:#374151;font-weight:500}.comment-lines,.abbreviation-lines{margin-top:1rem}.comment-lines .form-field,.abbreviation-lines .form-field{margin-bottom:.75rem}.image-upload-section{border:2px solid rgba(212,175,55,.4);background:#d4af370d}.upload-area{border:2px dashed rgba(212,175,55,.5);border-radius:12px;padding:2rem;text-align:center;cursor:pointer;transition:all .2s ease;background:#ffffff80}.upload-area:hover{border-color:#d4af37;background:#d4af371a}.upload-prompt p{margin:.5rem 0;color:#374151}.upload-rules{font-size:.75rem;color:#6b7280}.uploading{display:flex;flex-direction:column;align-items:center;gap:1rem}.spinner{width:32px;height:32px;border:3px solid rgba(212,175,55,.2);border-top:3px solid #d4af37;border-radius:50%;animation:spin 1s linear infinite}.image-uploaded{display:flex;gap:1rem;align-items:center;padding:1rem;background:#22c55e1a;border-radius:8px;border:1px solid rgba(34,197,94,.2)}.image-preview img{width:200px;height:200px;object-fit:cover;border-radius:8px;border:1px solid rgba(212,175,55,.3)}.image-info{flex:1}.image-info p{margin:.25rem 0;font-size:.875rem;color:#374151}.image-actions{display:flex;gap:.5rem}.remove-image-btn,.replace-image-btn,.upload-image-btn,.save-certificate-btn,.open-public-btn{padding:.75rem 1.5rem;border:none;border-radius:8px;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s ease;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}.upload-image-btn{background:linear-gradient(135deg,#10b981,#059669);color:#fff}.upload-image-btn:hover{background:linear-gradient(135deg,#059669,#047857);transform:translateY(-1px);box-shadow:0 4px 12px #10b9814d}.replace-image-btn{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff}.replace-image-btn:hover{background:linear-gradient(135deg,#2563eb,#1d4ed8);transform:translateY(-1px);box-shadow:0 4px 12px #3b82f64d}.remove-image-btn{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff}.remove-image-btn:hover{background:linear-gradient(135deg,#dc2626,#b91c1c);transform:translateY(-1px);box-shadow:0 4px 12px #ef44444d}.save-certificate-btn{background:linear-gradient(135deg,#d4af37,#b8860b);color:#fff;width:100%;padding:1rem 2rem;font-size:1rem}.save-certificate-btn:hover{background:linear-gradient(135deg,#b8860b,#9a7209);transform:translateY(-1px);box-shadow:0 6px 20px #d4af374d}.open-public-btn{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;width:100%;padding:1rem 2rem;font-size:1rem}.open-public-btn:hover{background:linear-gradient(135deg,#2563eb,#1d4ed8);transform:translateY(-1px);box-shadow:0 6px 20px #3b82f64d}.form-actions{display:flex;justify-content:center;padding:2rem 0;border-top:1px solid rgba(212,175,55,.2);margin-top:2rem}.save-certificate-btn{padding:1rem 2rem;background:linear-gradient(135deg,#d4af37,#b8860b);color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease;font-family:Inter,system-ui,-apple-system,sans-serif;min-width:200px}.save-certificate-btn:hover:not(:disabled){background:linear-gradient(135deg,#b8860b,#9a7209);transform:translateY(-2px);box-shadow:0 8px 20px #d4af374d}.save-certificate-btn:disabled{background:#9ca3af;cursor:not-allowed;transform:none;box-shadow:none}.validation-message:before{content:"";display:inline-block;width:16px;height:16px;margin-right:.5rem;background-size:contain;background-repeat:no-repeat;vertical-align:middle}.validation-message.error:before{content:"●";color:#ef4444}.validation-message.warning:before{content:"●";color:#f59e0b}.validation-message.caution:before{content:"●";color:#f97316}.validation-message.success:before{content:"●";color:#10b981}.validation-message.checking:before{content:"🔄";animation:spin 1s linear infinite}.certificate-created{text-align:center;background:#22c55e1a;border:2px solid rgba(34,197,94,.3)}.certificate-created h3{color:#166534;border-bottom-color:#22c55e4d}.certificate-created p{margin:.5rem 0;color:#374151;font-weight:500}@media(max-width:768px){.certificate-creation-container{padding:.5rem}.certificate-creation-panel{max-width:100%;padding:1rem;max-height:95vh}.checkbox-grid,.radio-group,.certificate-properties-grid,.metal-properties-grid,.comment-lines-grid,.abbreviation-lines-grid{grid-template-columns:1fr}.image-uploaded{flex-direction:column;text-align:center}.logo-section h1{font-size:1.5rem}}.form-field:has(input:disabled){opacity:.7}.form-field:has(input:disabled):not(:has(.checkbox-grid)) label:after{content:" 🔒";color:#6b7280}.checkbox-item.sequential-restricted label:after{content:""!important}.form-field .checkbox-item.sequential-restricted label:after{content:""!important}*{transition:opacity .2s ease,transform .2s ease}input:focus,button:focus{outline:2px solid #d4af37;outline-offset:2px}.form-field input.checking{background-image:linear-gradient(45deg,transparent 40%,rgba(212,175,55,.1) 50%,transparent 60%);background-size:20px 20px;animation:loading-stripe 1s linear infinite}@keyframes loading-stripe{0%{background-position:0 0}to{background-position:20px 0}}.gemstone-weights{display:flex;flex-direction:column;gap:1rem;margin-top:.75rem;padding:1.5rem;background:linear-gradient(145deg,#fffc,#fefbf5b3);border-radius:12px;border:1px solid rgba(200,180,150,.3);box-shadow:0 10px 30px #00000014,0 6px 18px #0000000d,0 3px 10px #00000008,inset 0 1px #ffffffb3,inset 0 -1px #d4af371a;transition:all .4s cubic-bezier(.4,0,.2,1)}.pearl-measurement{width:100%}.range-input{display:flex;align-items:center;gap:.5rem}.diameter-input{padding:.75rem;border:2px solid #e2e8f0;border-radius:8px;font-size:1rem;transition:all .2s ease;background:#fff;width:100%}.diameter-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.diameter-input.success{border-color:#10b981!important;background-color:#f0fdf4}.diameter-input.error{border-color:#ef4444!important;background-color:#fef2f2}.diameter-input.warning{border-color:#f59e0b!important;background-color:#fffbeb}.diameter-input.caution{border-color:#f97316!important;background-color:#fff7ed}.pearl-range-inputs{display:flex;flex-direction:column;gap:.5rem}.range-input-pair{display:flex;align-items:center;gap:.5rem}.range-input-pair .input-with-suffix{flex:1;min-width:80px}.range-input-pair .diameter-input{width:100%;padding-right:40px}.range-separator{font-weight:700;color:#6b7280;font-size:1.1rem}.range-result{font-size:.875rem;color:#6b7280;font-weight:500;padding:.25rem .5rem;background:#3b82f61a;border-radius:4px;text-align:center}.range-result:empty{display:none}.gemstone-weights:hover{transform:translateY(-3px);background:linear-gradient(145deg,#fffffff2,#fefbf5d9);border-color:#d4af3766;box-shadow:0 20px 50px #0000001f,0 12px 30px #00000014,0 6px 18px #0000000d,inset 0 1px #ffffffe6,inset 0 -1px #d4af3726,0 0 0 1px #d4af371a}.gemstone-weights:focus-within{transform:translateY(-4px);box-shadow:0 25px 60px #00000026,0 15px 35px #0000001a,0 8px 20px #00000014,inset 0 1px #fff,inset 0 -1px #d4af3733,0 0 0 2px #3b82f633}.gemstone-weight-input{display:flex;flex-direction:column;gap:.5rem;opacity:0;animation:slideInUp .4s ease forwards}.gemstone-weight-input:nth-child(1){animation-delay:.1s}.gemstone-weight-input:nth-child(2){animation-delay:.2s}.gemstone-weight-input:nth-child(3){animation-delay:.3s}@keyframes slideInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.gemstone-weight-input .weight-input{width:100%;padding:.75rem 3rem .75rem 1rem;border:1px solid rgba(200,180,150,.4);border-radius:8px;background:#ffffffe6;font-size:.875rem;font-weight:500;color:#374151;transition:all .2s ease;font-family:Inter,system-ui,-apple-system,sans-serif}.gemstone-weight-input .weight-input:hover{border-color:#d4af3799;background:linear-gradient(145deg,#fff,#fefbf5f2);transform:translateY(-2px);box-shadow:0 8px 20px #0000001a,0 4px 12px #0000000f,inset 0 1px #fffc}.gemstone-weight-input .weight-input:focus{outline:none;border-color:#d4af37;box-shadow:0 0 0 3px #d4af371a,0 4px 12px #00000026;background:#fff;transform:translateY(-2px)}.gemstone-weight-input .weight-input.error{border-color:#ef4444!important;background:#ef44440d!important}.gemstone-weight-input .weight-input.warning{border-color:#f59e0b!important;background:#f59e0b0d!important}.gemstone-weight-input .weight-input.caution{border-color:#f97316!important;background:#f973160d!important}.gemstone-weight-input .weight-input.success{border-color:#10b981!important;background:#10b9810d!important}.running-total{margin-top:1.5rem;padding:1rem;background:#22c55e0d;border-radius:8px;border:1px solid rgba(34,197,94,.2);transition:all .3s ease;position:relative;overflow:hidden}.running-total:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(34,197,94,.1),transparent);transition:left .6s ease}.running-total:hover:before{left:100%}.running-total .total-weight{width:100%;padding:.75rem 4rem .75rem 1rem;border:1px solid rgba(34,197,94,.3);border-radius:8px;background:#f0fdf4cc;font-size:.875rem;font-weight:600;color:#166534;text-align:center;font-family:Inter,system-ui,-apple-system,sans-serif;transition:all .2s ease}.running-total .total-weight:hover{background:#f0fdf4;transform:scale(1.02)}.running-total{margin-top:1.5rem;padding:1rem;background:#22c55e0d;border-radius:8px;border:1px solid rgba(34,197,94,.2)}.running-total .total-weight{width:100%;padding:.75rem 4rem .75rem 1rem;border:1px solid rgba(34,197,94,.3);border-radius:8px;background:#f0fdf4cc;font-size:.875rem;font-weight:600;color:#166534;text-align:center;font-family:Inter,system-ui,-apple-system,sans-serif}@media(max-width:768px){.gemstone-weights{padding:.75rem;gap:.75rem}.gemstone-weight-input label{font-size:.8rem}.gemstone-weight-input .weight-input{padding:.625rem 2.5rem .625rem .75rem;font-size:.8rem}.gemstone-weight-input .suffix{right:.75rem;font-size:.8rem}.running-total{padding:.75rem;margin-top:1rem}.running-total label{font-size:.8rem}.running-total .total-weight{padding:.625rem 3rem .625rem .75rem;font-size:.8rem}.running-total .suffix{right:.75rem;font-size:.8rem}}.form-group{margin-bottom:1.5rem}.form-group>label{font-size:.9rem;font-weight:600;color:#374151;margin-bottom:.75rem;display:block}.checkbox-grid+.gemstone-weights{margin-top:1rem}.gemstone-weights:after{content:"";display:block;height:1px;background:linear-gradient(90deg,transparent,rgba(200,180,150,.3),transparent);margin:.5rem 0 0}.gemstone-weight-input label{font-size:.875rem;font-weight:600;color:#374151;margin:0}.gemstone-weight-input .input-with-suffix{position:relative;display:flex;align-items:center}.gemstone-weight-input .weight-input:disabled{background:#9ca3af1a;color:#6b7280;cursor:not-allowed}.gemstone-weight-input .suffix{position:absolute;right:1rem;top:50%;transform:translateY(-50%);font-size:.875rem;color:#6b7280;pointer-events:none;font-weight:500}.running-total label{font-size:.875rem;font-weight:600;color:#166534;margin-bottom:.5rem;display:block}.running-total .input-with-suffix{position:relative;display:flex;align-items:center}.running-total .suffix{position:absolute;right:1rem;top:50%;transform:translateY(-50%);font-size:.875rem;color:#166534;pointer-events:none;font-weight:600}.running-total .validation-message{margin-top:.5rem;text-align:center;font-size:.8rem;font-weight:500}.growth-origin-selection{margin-bottom:1rem}.growth-origin-selection>label{display:block;font-weight:600;color:#1e293b;margin-bottom:.5rem;font-size:.875rem}.growth-origin-radio-group{display:flex;gap:1rem;flex-wrap:wrap}.radio-option{display:flex;align-items:center;gap:.5rem;cursor:pointer;padding:.75rem 1rem;border:2px solid #e2e8f0;border-radius:8px;background:#fff;transition:all .2s ease;font-size:.875rem;font-weight:500;color:#1e293b;min-width:140px;justify-content:flex-start}.radio-option:hover{border-color:#cbd5e1;background-color:#f8fafc}.radio-option input[type=radio]{width:1.25rem;height:1.25rem;margin:0;cursor:pointer;accent-color:#10b981}.radio-option input[type=radio]:checked+.radio-label{color:#047857;font-weight:600}.radio-option:has(input[type=radio]:checked){border-color:#10b981;background-color:#ecfdf5;box-shadow:0 0 0 3px #10b9811a}.pearl-type-selector{margin-bottom:15px;display:flex;gap:12px;flex-wrap:wrap}.pearl-single-input{margin-top:10px}.radio-option:has(input[type=radio]:disabled){background-color:#f8fafc;color:#64748b;cursor:not-allowed;border-color:#e2e8f0}.radio-option input[type=radio]:disabled{cursor:not-allowed;opacity:.5}.radio-label{cursor:pointer;-webkit-user-select:none;user-select:none;flex:1}.auto-selected-info{margin-bottom:1rem}.auto-selected-info .info-text{font-size:.875rem;color:#6b7280;font-style:italic;margin:0;padding:.75rem 1rem;background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;border-left:4px solid #10b981}.radio-group .auto-selected{opacity:.7;cursor:not-allowed}.radio-group .auto-selected input[type=radio]{cursor:not-allowed}.radio-group .auto-selected span{cursor:not-allowed;color:#6b7280}.radio-group .auto-selected.checked{background-color:#ecfdf5;border-color:#10b981;opacity:1}.radio-group .auto-selected.checked span{color:#047857;font-weight:600}@media(max-width:768px){.growth-origin-radio-group{flex-direction:column;gap:.75rem}.radio-option{min-width:unset;width:100%}}.diamond-selection-section{margin-bottom:1.5rem;padding:1rem;background:linear-gradient(135deg,#e3f2fd,#f3e5f5);border-radius:8px;border-left:4px solid #2196f3}.diamond-selection-section h4{margin:0 0 1rem;color:#1976d2;font-weight:600;font-size:1.1rem}.diamond-checkboxes{display:flex;flex-direction:column;gap:.75rem}.diamond-checkbox-container{display:flex;flex-direction:column;gap:.25rem}.completion-status{margin-left:.5rem;font-size:.9rem}.completion-status.complete{color:#28a745}.completion-status.incomplete{color:#ffc107}.disabled-reason{font-size:.8rem;color:#6c757d;font-style:italic;margin-left:1.5rem}.other-gemstone-selection{margin-top:1.5rem}.other-gemstone-selection h4{margin:0 0 1rem;color:#6c757d;font-weight:600;font-size:1.1rem}.diamond-properties{margin-top:1rem;padding:1rem;background:linear-gradient(135deg,#e8f5e8,#f0f8ff);border-radius:8px;border-left:4px solid #4caf50}.diamond-type-header{margin-bottom:1.5rem;padding:1rem;background:#d4af371a;border:1px solid rgba(212,175,55,.3);border-radius:8px}.diamond-type-header label{font-weight:600;color:#0f172ae6;margin-bottom:.75rem;display:block}.diamond-color-section,.diamond-clarity-section{margin-bottom:1rem}.diamond-color-section:last-child,.diamond-clarity-section:last-child{margin-bottom:0}.diamond-color-section label,.diamond-clarity-section label{font-weight:600;color:#2e7d32;margin-bottom:.5rem;display:block}.color-type-selection,.clarity-type-selection{display:flex;gap:1rem;margin:.5rem 0}.diamond-properties .radio-option{display:flex;align-items:center;gap:.5rem;margin:0;cursor:pointer;padding:.25rem .5rem;border-radius:4px;transition:background-color .2s ease}.diamond-properties .radio-option:hover{background-color:#4caf501a}.diamond-properties .radio-option input[type=radio]{margin:0}.diamond-properties select{width:100%;padding:.75rem;border:2px solid #e0e0e0;border-radius:6px;font-size:.9rem;margin-top:.5rem;background:#fff;transition:border-color .2s ease,box-shadow .2s ease}.diamond-properties select:focus{outline:none;border-color:#4caf50;box-shadow:0 0 0 3px #4caf5033}.diamond-properties select option{padding:.5rem}.auto-calculated{opacity:.8}.auto-calculated .radio-option{cursor:not-allowed}.auto-calculated .radio-option.auto-selected{background:#22c55e1a;border-color:#22c55e4d}.calculation-note{font-size:.8rem;color:#4b5563cc;font-style:italic;margin-top:.5rem}.diamond-type-selection{display:flex;gap:1rem;margin:.5rem 0}.diamond-options-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:.75rem;margin-top:.75rem;max-height:300px;overflow-y:auto;padding:.5rem;border:1px solid rgba(212,175,55,.2);border-radius:8px;background:#ffffff80}.checkbox-option{display:flex;align-items:flex-start;gap:.5rem;padding:.75rem;border:1px solid rgba(212,175,55,.2);border-radius:6px;background:#fffc;cursor:pointer;transition:all .2s ease}.checkbox-option:hover{border-color:#d4af3766;background:#fffffff2;transform:translateY(-1px);box-shadow:0 2px 8px #d4af371a}.checkbox-option.checked{border-color:#d4af3799;background:#d4af371a;box-shadow:0 0 0 2px #d4af3733}.checkbox-option input[type=checkbox]{margin:0;width:16px;height:16px;flex-shrink:0}.checkbox-label{display:flex;flex-direction:column;gap:.25rem;flex:1}.checkbox-label strong{font-weight:600;color:#0f172ae6;font-size:.9rem}.checkbox-label small{font-size:.8rem;color:#4b5563cc;line-height:1.3}.gemstone-summary-container{background:#3b82f60d;border:1px solid rgba(59,130,246,.2);border-radius:8px;padding:1rem;margin-top:.5rem}.gemstone-summary-item{margin-bottom:1rem;padding:.75rem;background:#fffc;border:1px solid rgba(59,130,246,.15);border-radius:6px}.gemstone-summary-item:last-child{margin-bottom:0}.gemstone-summary-item h4{margin:0 0 .5rem;font-size:1rem;font-weight:600;color:#0f172ae6;border-bottom:1px solid rgba(59,130,246,.2);padding-bottom:.25rem}.summary-details{display:flex;flex-direction:column;gap:.25rem}.summary-detail{font-size:.9rem;color:#4b5563e6;padding:.125rem 0}.missing-field,.duplicate-field{color:#dc2626!important;font-weight:500}.diamond-total-summary{margin-top:1rem;padding:.75rem;background:#d4af371a;border:1px solid rgba(212,175,55,.3);border-radius:6px;text-align:center}.diamond-total-summary strong{font-size:1rem;color:#0f172ae6}.gemstone-total-summary{margin-top:1rem;padding:.75rem;background:#3b82f61a;border:1px solid rgba(59,130,246,.3);border-radius:6px;text-align:center}.gemstone-total-summary strong{font-size:1rem;color:#0f172ae6}.auto-calculated-weight{background:#e5e7ebcc!important;color:#4b5563cc!important;cursor:not-allowed!important;font-weight:500}.sequential-disabled{opacity:.4!important;cursor:not-allowed!important;background:#e5e7eb4d!important}.sequential-disabled input{cursor:not-allowed!important}.sequential-disabled span{color:#6b728099!important}.sequential-restricted input[type=checkbox]:disabled{opacity:1!important;cursor:default!important}.sequential-restricted:has(input[type=checkbox]:disabled){opacity:1!important;cursor:default!important;background:none!important}@media(max-width:768px){.diamond-type-selection{flex-direction:column;gap:.5rem}.diamond-options-grid{grid-template-columns:1fr;max-height:250px}.checkbox-option{padding:.5rem}.checkbox-label strong{font-size:.85rem}.checkbox-label small{font-size:.75rem}.gemstone-summary-container{padding:.75rem}.gemstone-summary-item{padding:.5rem}.gemstone-summary-item h4{font-size:.9rem}.summary-detail{font-size:.85rem}}.auto-populated{background:linear-gradient(135deg,#f0f9ff,#e0f2fe);border:2px solid #0ea5e9;color:#0c4a6e;cursor:not-allowed;font-style:italic;position:relative;transition:all .3s cubic-bezier(.4,0,.2,1)}.auto-populated:before{content:"🤖";position:absolute;right:8px;top:50%;transform:translateY(-50%);font-size:14px;opacity:.7}.auto-populated::placeholder{color:#0369a1;font-style:italic;opacity:.8}.auto-populated:hover{background:linear-gradient(135deg,#e0f2fe,#bae6fd);border-color:#0284c7;box-shadow:0 4px 12px #0ea5e926,0 2px 6px #0ea5e91a}.user-editable{background:linear-gradient(135deg,#fff,#fefefe);border:2px solid #e2e8f0;color:#1e293b;transition:all .3s cubic-bezier(.4,0,.2,1)}.user-editable:focus{border-color:#3b82f6;background:linear-gradient(135deg,#fefefe,#f8fafc);box-shadow:0 0 0 3px #3b82f61a,0 4px 12px #3b82f626,0 2px 6px #3b82f61a;outline:none}.user-editable:hover:not(:focus){border-color:#cbd5e1;background:linear-gradient(135deg,#f8fafc,#f1f5f9)}.field-state-indicator{display:inline-block;width:12px;height:12px;border-radius:50%;margin-left:8px;position:relative;transition:all .3s ease}.field-state-indicator.auto{background:linear-gradient(135deg,#0ea5e9,#0284c7);box-shadow:0 2px 4px #0ea5e94d}.field-state-indicator.auto:after{content:"A";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:8px;font-weight:700;color:#fff}.field-state-indicator.manual{background:linear-gradient(135deg,#10b981,#059669);box-shadow:0 2px 4px #10b9814d}.field-state-indicator.manual:after{content:"M";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:8px;font-weight:700;color:#fff}.form-field.has-auto-populated{position:relative}.form-field.has-auto-populated:before{content:"Auto-Generated";position:absolute;top:-8px;right:12px;background:linear-gradient(135deg,#0ea5e9,#0284c7);color:#fff;font-size:10px;font-weight:600;padding:2px 6px;border-radius:4px;z-index:10;opacity:.9;text-transform:uppercase;letter-spacing:.5px}.form-field.has-user-editable:before{content:"Manual Entry";position:absolute;top:-8px;right:12px;background:linear-gradient(135deg,#10b981,#059669);color:#fff;font-size:10px;font-weight:600;padding:2px 6px;border-radius:4px;z-index:10;opacity:.9;text-transform:uppercase;letter-spacing:.5px}.comment-lines .form-field.has-auto-populated,.abbreviation-lines .form-field.has-auto-populated{background:linear-gradient(135deg,#0ea5e90d,#0284c708);border-radius:8px;padding:12px;margin-bottom:8px;border-left:3px solid #0ea5e9}.comment-lines .form-field.has-user-editable,.abbreviation-lines .form-field.has-user-editable{background:linear-gradient(135deg,#10b9810d,#05966908);border-radius:8px;padding:12px;margin-bottom:8px;border-left:3px solid #10b981}@media(max-width:768px){.auto-populated:before{right:6px;font-size:12px}.field-state-indicator{width:10px;height:10px;margin-left:6px}.field-state-indicator.auto:after,.field-state-indicator.manual:after{font-size:7px}.form-field.has-auto-populated:before,.form-field.has-user-editable:before{font-size:9px;padding:1px 4px;top:-6px;right:8px}}.certificate-actions{display:flex;gap:1rem;margin-top:1rem;flex-wrap:wrap}.certificate-actions button{flex:1;min-width:200px;padding:.875rem 1.5rem;border:none;border-radius:8px;font-weight:600;font-size:.95rem;cursor:pointer;transition:all .2s ease;text-align:center;display:flex;align-items:center;justify-content:center;gap:.5rem}.open-public-btn{background:linear-gradient(135deg,#059669,#047857);color:#fff;box-shadow:0 4px 12px #0596694d}.open-public-btn:hover{background:linear-gradient(135deg,#047857,#065f46);box-shadow:0 6px 16px #05966966;transform:translateY(-1px)}.create-new-btn{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;box-shadow:0 4px 12px #3b82f64d}.create-new-btn:hover{background:linear-gradient(135deg,#2563eb,#1d4ed8);box-shadow:0 6px 16px #3b82f666;transform:translateY(-1px)}.bottom-status-messages{margin-top:2rem;margin-bottom:1rem;border-top:1px solid rgba(255,255,255,.1);padding-top:1rem}.bottom-status-messages .status-message{margin-bottom:.75rem;padding:.875rem 1rem;border-radius:8px;font-weight:500;position:relative}.bottom-status-messages .status-message:before{content:"📍";margin-right:.5rem;opacity:.8}.bottom-status-messages .status-message.success:before{content:"✅"}.bottom-status-messages .status-message.error:before{content:"❌"}.bottom-status-messages .status-message.warning:before{content:"⚠️"}.bottom-status-messages .status-message.info:before{content:"ℹ️"}@media(max-width:768px){.certificate-actions{flex-direction:column}.certificate-actions button{min-width:unset;width:100%}}.logout-btn,.dashboard-btn{padding:.5rem 1rem;border:none;border-radius:6px;font-weight:600;font-size:.875rem;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;gap:.5rem;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 4px 12px #0003}.top-dashboard{background:linear-gradient(135deg,#3b82f6f2,#2563ebf2);color:#fff;border:1px solid rgba(59,130,246,.3)}.top-dashboard:hover{background:linear-gradient(135deg,#2563ebfa,#1d4ed8fa);box-shadow:0 6px 16px #3b82f666;transform:translateY(-1px)}.top-logout{background:linear-gradient(135deg,#dc2626f2,#b91c1cf2);color:#fff;border:1px solid rgba(220,38,38,.3)}.top-logout:hover{background:linear-gradient(135deg,#b91c1cfa,#991b1bfa);box-shadow:0 6px 16px #dc262666;transform:translateY(-1px)}.logo-section{display:flex;align-items:center;gap:1rem;margin-bottom:2rem}.logo-section h1{margin:0}@media(max-width:768px){.top-navigation{top:.5rem;right:.5rem;gap:.5rem}.logout-btn,.dashboard-btn{padding:.4rem .8rem;font-size:.8rem}}.crop-modal-overlay{position:fixed;inset:0;background:#000000e6;display:flex;align-items:center;justify-content:center;z-index:10000;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.crop-modal{background:linear-gradient(135deg,#1e293b,#0f172a);border-radius:16px;padding:32px;max-width:800px;width:90%;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #00000080,0 0 0 1px #d4af374d;border:2px solid rgba(212,175,55,.5)}.crop-modal h3{margin:0 0 24px;font-size:24px;font-weight:700;text-align:center;color:#d4af37;text-shadow:0 2px 8px rgba(212,175,55,.3)}.crop-container{margin-bottom:24px;display:flex;justify-content:center;max-height:500px;overflow:hidden;border:2px solid rgba(212,175,55,.3);border-radius:12px;background:#0c1220}.crop-container img{max-width:100%;max-height:500px;object-fit:contain}.quality-control{margin-bottom:24px;padding:20px;background:#0f172a99;border-radius:12px;border:1px solid rgba(212,175,55,.2)}.quality-control label{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;font-weight:600;color:#e2e8f0;font-size:16px}.quality-control .estimated-size{color:#d4af37;font-size:14px;font-weight:500}.quality-control input[type=range]{width:100%;height:8px;background:linear-gradient(to right,#d4af37,#b8860b);border-radius:4px;outline:none;cursor:pointer;-webkit-appearance:none}.quality-control input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:20px;height:20px;background:#d4af37;cursor:pointer;border-radius:50%;box-shadow:0 2px 8px #d4af3780;transition:all .2s}.quality-control input[type=range]::-webkit-slider-thumb:hover{background:#f4c542;transform:scale(1.1);box-shadow:0 4px 12px #d4af37b3}.quality-control input[type=range]::-moz-range-thumb{width:20px;height:20px;background:#d4af37;cursor:pointer;border-radius:50%;border:none;box-shadow:0 2px 8px #d4af3780;transition:all .2s}.quality-control input[type=range]::-moz-range-thumb:hover{background:#f4c542;transform:scale(1.1);box-shadow:0 4px 12px #d4af37b3}.quality-hint{text-align:center;color:#94a3b8;font-size:14px;margin:12px 0 0;font-style:italic}.crop-actions{display:flex;gap:16px;justify-content:center;margin-bottom:16px}.crop-actions button{padding:14px 32px;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 12px #0000004d;min-width:140px}.crop-actions .btn-cancel{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff}.crop-actions .btn-cancel:hover:not(:disabled){background:linear-gradient(135deg,#dc2626,#b91c1c);transform:translateY(-2px);box-shadow:0 6px 16px #ef444466}.crop-actions .btn-apply{background:linear-gradient(135deg,#10b981,#059669);color:#fff}.crop-actions .btn-apply:hover:not(:disabled){background:linear-gradient(135deg,#059669,#047857);transform:translateY(-2px);box-shadow:0 6px 16px #10b98166}.crop-actions button:disabled{opacity:.5;cursor:not-allowed;transform:none}.crop-hint{text-align:center;color:#94a3b8;font-size:14px;margin:0;padding:0 16px;line-height:1.6}.ReactCrop{position:relative;display:inline-block;cursor:crosshair;overflow:hidden;max-width:100%}.ReactCrop__crop-selection{border:2px solid #d4af37;box-shadow:0 0 0 9999em #00000080}.ReactCrop__drag-handle{width:12px;height:12px;background-color:#d4af37;border:2px solid #fff;border-radius:50%;box-shadow:0 2px 8px #00000080}.ReactCrop__drag-handle:hover{background-color:#f4c542}.crop-modal::-webkit-scrollbar{width:8px}.crop-modal::-webkit-scrollbar-track{background:#0f172a80;border-radius:4px}.crop-modal::-webkit-scrollbar-thumb{background:#d4af3780;border-radius:4px}.crop-modal::-webkit-scrollbar-thumb:hover{background:#d4af37b3}.zoom-control{margin-bottom:24px;padding:20px;background:#0f172a99;border-radius:12px;border:1px solid rgba(59,130,246,.3)}.zoom-control label{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;font-weight:600;color:#e2e8f0;font-size:16px}.zoom-control input[type=range]{width:100%;height:8px;background:linear-gradient(to right,#3b82f6,#2563eb);border-radius:4px;outline:none;cursor:pointer;-webkit-appearance:none}.zoom-control input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:20px;height:20px;background:#3b82f6;cursor:pointer;border-radius:50%;box-shadow:0 2px 8px #3b82f680;transition:all .2s}.zoom-control input[type=range]::-webkit-slider-thumb:hover{background:#60a5fa;transform:scale(1.1);box-shadow:0 4px 12px #3b82f6b3}.zoom-control input[type=range]::-moz-range-thumb{width:20px;height:20px;background:#3b82f6;cursor:pointer;border-radius:50%;border:none;box-shadow:0 2px 8px #3b82f680;transition:all .2s}.zoom-control input[type=range]::-moz-range-thumb:hover{background:#60a5fa;transform:scale(1.1);box-shadow:0 4px 12px #3b82f6b3}.zoom-hint{text-align:center;color:#94a3b8;font-size:14px;margin:12px 0 0;font-style:italic}.confirm-dialog-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease-in}.confirm-dialog{background:#fff;border-radius:8px;box-shadow:0 10px 40px #0000004d;min-width:400px;max-width:600px;max-height:80vh;overflow:auto;animation:slideIn .2s ease-out}@keyframes slideIn{0%{transform:translateY(-50px);opacity:0}to{transform:translateY(0);opacity:1}}.confirm-dialog-header{padding:20px;border-bottom:2px solid #ecf0f1}.confirm-dialog-header h3{margin:0;color:#2c3e50;font-size:20px;font-weight:600}.confirm-dialog-danger .confirm-dialog-header{border-bottom-color:#e74c3c}.confirm-dialog-warning .confirm-dialog-header{border-bottom-color:#f39c12}.confirm-dialog-info .confirm-dialog-header{border-bottom-color:#3498db}.confirm-dialog-body{padding:20px}.confirm-dialog-message{margin:0 0 15px;color:#34495e;font-size:16px;line-height:1.5}.confirm-dialog-details{background:#f8f9fa;border:1px solid #dee2e6;border-radius:4px;padding:15px;margin-top:15px}.detail-item{padding:5px 0;color:#495057;font-size:14px;border-bottom:1px solid #e9ecef}.detail-item:last-child{border-bottom:none}.confirm-dialog-footer{padding:15px 20px;border-top:1px solid #ecf0f1;display:flex;justify-content:flex-end;gap:10px}.btn-cancel,.btn-confirm{padding:10px 20px;border:none;border-radius:5px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.btn-cancel:hover{background:#7f8c8d}.btn-confirm{color:#fff}.btn-confirm-danger{background:#e74c3c}.btn-confirm-danger:hover{background:#c0392b}.btn-confirm-warning{background:#f39c12}.btn-confirm-warning:hover{background:#e67e22}.btn-confirm-info{background:#3498db}.btn-confirm-info:hover{background:#2980b9}@media(max-width:600px){.confirm-dialog{min-width:90%;margin:20px}.confirm-dialog-footer{flex-direction:column-reverse}.btn-cancel,.btn-confirm{width:100%}}.certificate-list-container{padding:20px;max-width:100%;margin:0 auto;height:calc(100vh - 40px);display:flex;flex-direction:column;overflow:hidden}.list-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:15px;border-bottom:2px solid #2c3e50}.list-header h2{margin:0;color:#fff;font-size:24px;text-shadow:2px 2px 4px rgba(0,0,0,.3)}.list-subheader{margin-bottom:15px}.btn-logout:hover{background:linear-gradient(135deg,#c0392b,#a93226);box-shadow:0 4px 12px #e74c3c66;transform:translateY(-2px)}.btn-logout:active{transform:translateY(0);box-shadow:0 2px 6px #e74c3c4d}.header-content{display:grid;grid-template-columns:2fr 1fr;gap:20px;align-items:start}.header-actions{display:flex;flex-direction:column;gap:10px}.header-actions-row{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;width:100%}.header-actions-row:first-child .btn-action:first-child{background:#3498db;color:#fff}.header-actions-row:first-child .btn-action:first-child:hover:not(:disabled){background:#2980b9}.header-actions-row:first-child .btn-action:last-child{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff}.header-actions-row:first-child .btn-action:last-child:hover:not(:disabled){background:linear-gradient(135deg,#d97706,#b45309)}.btn-action{padding:12px 20px;border:none;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;transition:all .2s;text-align:center;white-space:nowrap;min-height:44px;display:flex;align-items:center;justify-content:center;background:#6c757d;color:#fff}.btn-action:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 8px #00000026}.btn-action:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-primary,.btn-secondary{padding:10px 20px;border:none;border-radius:5px;cursor:pointer;font-size:14px;font-weight:500;transition:all .2s}.btn-action.btn-primary{background:linear-gradient(135deg,#10b981,#059669);color:#fff}.btn-action.btn-primary:hover:not(:disabled){background:linear-gradient(135deg,#059669,#047857)}.btn-primary{background:#3498db;color:#fff}.btn-primary:hover{background:#2980b9}.btn-action.btn-access{background:linear-gradient(135deg,#a4123f,#d32f2f)}.btn-action.btn-access:hover:not(:disabled){background:linear-gradient(135deg,#8b0000,#b71c1c)}.btn-action.btn-access:disabled{background:#ccc}.btn-action.btn-print{background:linear-gradient(135deg,#7c3aed,#5b21b6);color:#fff}.btn-action.btn-print:hover:not(:disabled){background:linear-gradient(135deg,#6d28d9,#4c1d95)}.btn-action.btn-print:disabled{background:#6c757d;opacity:.6}.btn-secondary{background:#95a5a6;color:#fff}.btn-secondary:hover{background:#7f8c8d}.btn-back{padding:10px 20px;border:none;border-radius:5px;cursor:pointer;font-size:14px;font-weight:500;transition:all .2s;background:#34495e;color:#fff}.btn-back:hover{background:#2c3e50}.column-selector{background:#ecf0f1;border:2px solid #bdc3c7;border-radius:8px;padding:20px;margin-bottom:20px;position:relative;z-index:5}.selector-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.selector-header h3{margin:0;font-size:18px;color:#2c3e50}.selector-actions{display:flex;gap:8px}.selector-actions button{padding:6px 12px;border:1px solid #95a5a6;background:#fff;border-radius:4px;cursor:pointer;font-size:13px;transition:all .2s}.selector-actions button:hover{background:#3498db;color:#fff;border-color:#3498db}.selector-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;position:relative;z-index:1}.selector-grid label{display:flex;align-items:center;gap:8px;padding:8px 12px;background:#fff;border:1px solid #bdc3c7;border-radius:4px;cursor:pointer;transition:all .2s;-webkit-user-select:none;user-select:none;position:relative;z-index:1}.selector-grid label:hover:not(.always-visible){background:#e8f4f8;border-color:#3498db}.selector-grid label.always-visible{background:#d5dbdb;cursor:not-allowed;opacity:.7}.selector-grid label input[type=checkbox]{width:18px;height:18px;cursor:pointer;flex-shrink:0;pointer-events:auto;z-index:2;position:relative}.selector-grid label.always-visible input[type=checkbox]{cursor:not-allowed;pointer-events:none}.selector-grid label .badge{margin-left:auto;padding:2px 6px;background:#e74c3c;color:#fff;font-size:10px;border-radius:3px;font-weight:700;pointer-events:none}.selector-grid label span{pointer-events:none;flex:1}.list-filters{display:flex;gap:20px;margin-bottom:20px;padding:15px;background:#f8f9fa;border-radius:5px;flex-wrap:wrap}.filter-group{display:flex;align-items:center;gap:8px}.filter-group.search-group{flex:1;min-width:250px}.filter-group label{font-weight:500;color:#2c3e50;white-space:nowrap}.filter-group select,.filter-group input[type=text]{padding:8px 12px;border:1px solid #bdc3c7;border-radius:4px;font-size:14px}.filter-group input[type=text]{flex:1;min-width:200px}.location-badge{display:inline-block;padding:4px 10px;border-radius:12px;font-size:11px;font-weight:600;white-space:nowrap;margin-left:8px}.default-badge{background:linear-gradient(135deg,#27ae60,#229954);color:#fff;box-shadow:0 2px 4px #27ae6033}.custom-badge{background:linear-gradient(135deg,#f39c12,#e67e22);color:#fff;box-shadow:0 2px 4px #f39c1233;animation:pulse 2s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}.loading-state,.error-state{padding:40px;text-align:center;font-size:16px;border-radius:5px;margin:20px 0;flex-shrink:0}.loading-state{background:#e8f4f8;color:#2c3e50}.error-state{background:#fadbd8;color:#c0392b;border:1px solid #e74c3c}.table-wrapper{position:relative;overflow:auto;border:1px solid #bdc3c7;border-radius:5px;margin-bottom:20px;flex:1;min-height:0}.table-wrapper::-webkit-scrollbar{height:12px}.table-wrapper::-webkit-scrollbar-track{background:#ecf0f1;border-radius:6px}.table-wrapper::-webkit-scrollbar-thumb{background:#3498db;border-radius:6px}.table-wrapper::-webkit-scrollbar-thumb:hover{background:#2980b9}.certificate-table{width:max-content;min-width:100%;border-collapse:collapse;background:#fff;font-size:13px}.certificate-table thead{background:#34495e;color:#fff;position:sticky;top:0;z-index:100}.certificate-table th{padding:12px;text-align:left;font-weight:600;white-space:nowrap;border-right:1px solid #4a5f7f}.certificate-table th:last-child{border-right:none}.certificate-table tbody tr{border-bottom:1px solid #ecf0f1}.certificate-table tbody tr:hover{background:#e8f4f8}.certificate-table td{padding:10px 12px;border-right:1px solid #ecf0f1;white-space:nowrap;max-width:150px;overflow:hidden;text-overflow:ellipsis}.certificate-table td{min-width:100px}.certificate-table td.cell-comment{min-width:500px;max-width:600px;white-space:normal;word-wrap:break-word;line-height:1.4;padding:12px}.certificate-table td.cell-abbreviation{min-width:80px;max-width:120px}.certificate-table th.cell-sticky,.certificate-table td.cell-sticky{position:sticky;background:#fff;z-index:10;border-right:2px solid #bdc3c7}.certificate-table thead th.cell-sticky{background:#34495e;z-index:101}.certificate-table th.cell-sticky-select,.certificate-table td.cell-sticky-select{left:0;min-width:50px;max-width:50px;text-align:center;padding:8px}.certificate-table td.cell-sticky-select input{pointer-events:auto!important}.certificate-table th.cell-sticky-cert-id,.certificate-table td.cell-sticky-cert-id{left:50px;min-width:150px;max-width:150px}.checkbox-wrapper{display:inline-flex;align-items:center;justify-content:center;cursor:pointer;padding:4px;margin:-4px;position:relative;z-index:20;-webkit-user-select:none;user-select:none}.checkbox-wrapper:hover{background:#3498db1a;border-radius:3px}.cert-checkbox{width:18px;height:18px;cursor:pointer;margin:0;pointer-events:none;position:relative}.certificate-table thead .cert-checkbox{accent-color:#3498db}.certificate-table tbody .cert-checkbox{accent-color:#27ae60}.certificate-table td.cell-sticky:after{content:"";position:absolute;top:0;right:0;bottom:0;width:10px;background:linear-gradient(to right,rgba(0,0,0,.1),transparent);pointer-events:none}.certificate-table td.cell-sticky-select:after{display:none}.certificate-table td.cell-sticky-select{cursor:pointer}.certificate-table td:last-child{border-right:none}.certificate-table td.no-data{text-align:center;color:#7f8c8d;font-style:italic;padding:40px}.btn-open-url{padding:6px 12px;background:#27ae60;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:12px;transition:all .2s;white-space:nowrap}.btn-open-url:hover{background:#229954;transform:scale(1.05)}.actions-cell{display:flex;gap:8px;align-items:center;justify-content:center;white-space:nowrap}.btn-edit,.btn-delete{padding:6px 12px;border:none;border-radius:4px;cursor:pointer;font-size:12px;font-weight:500;transition:all .2s;white-space:nowrap}.btn-edit{background:#3498db;color:#fff}.btn-edit:hover{background:#2980b9;transform:scale(1.05)}.btn-delete{background:#e74c3c;color:#fff}.btn-delete:hover{background:#c0392b;transform:scale(1.05)}.pagination{display:flex;justify-content:space-between;align-items:center;padding:15px;background:#f8f9fa;border-radius:5px;flex-shrink:0;margin-top:auto}.pagination-info{color:#2c3e50;font-size:14px}.pagination-controls{display:flex;align-items:center;gap:15px}.pagination-controls button{padding:8px 16px;border:1px solid #bdc3c7;background:#fff;border-radius:4px;cursor:pointer;font-size:14px;transition:all .2s}.pagination-controls button:not(:disabled):hover{background:#3498db;color:#fff;border-color:#3498db}.pagination-controls button:disabled{opacity:.5;cursor:not-allowed}.pagination-controls span{font-weight:500;color:#2c3e50}@media(max-width:768px){.list-header{flex-direction:column;align-items:flex-start;gap:15px}.list-filters{flex-direction:column}.pagination{flex-direction:column;gap:15px}.selector-grid{grid-template-columns:1fr}}.btn-action.btn-zebra{background:linear-gradient(135deg,#667eea,#764ba2);transition:all .3s ease}.btn-action.btn-zebra:hover:not(:disabled){background:linear-gradient(135deg,#5568d3,#6a4190)}.btn-action.btn-zebra:disabled{background:linear-gradient(135deg,#9ca3af,#6b7280);color:#d1d5db;cursor:not-allowed;opacity:.6;border:2px solid #4b5563}.btn-action.btn-zebra:disabled:hover{transform:none;box-shadow:none}.btn-action.btn-zebra-dubai:not(:disabled){background:linear-gradient(135deg,#f59e0b,#d97706)}.btn-action.btn-zebra-dubai:not(:disabled):hover{background:linear-gradient(135deg,#d97706,#b45309)}.btn-action.btn-zebra-doha:not(:disabled){background:linear-gradient(135deg,#8b5cf6,#7c3aed)}.btn-action.btn-zebra-doha:not(:disabled):hover{background:linear-gradient(135deg,#7c3aed,#6d28d9)}.no-publish-permissions{grid-column:1 / -1;padding:12px 16px;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:6px;color:#dc2626;font-size:14px;font-weight:500;text-align:center}.selection-warning,.selection-info{grid-column:1 / -1;padding:12px 16px;border-radius:8px;font-size:14px;margin-top:10px;animation:slideDown .3s ease-out}.selection-warning{background:#fbbf241a;border:2px solid #f59e0b;color:#92400e}.selection-warning strong{color:#78350f}.warning-hint{font-style:italic;opacity:.9}.selection-info{background:#3b82f633;border:2px solid #3b82f6;color:#fff}.selection-info strong{color:#fff;font-weight:700}.zebra-status-panel{background:#fff;border:2px solid #667eea;border-radius:12px;margin-top:0;box-shadow:0 4px 12px #667eea26;animation:slideIn .3s ease-out;overflow:hidden;height:fit-content}.zebra-status-header{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:12px 20px;display:flex;align-items:center;border-bottom:2px solid #5568d3}.zebra-status-title{display:flex;align-items:center;gap:10px;font-size:16px;font-weight:600}.zebra-status-icon{font-size:20px}.zebra-status-content{padding:16px 20px;max-height:200px;overflow-y:auto;background:#f8f9fa}.zebra-status-item{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid #e9ecef}.zebra-status-item:last-of-type{border-bottom:none}.zebra-status-label{font-size:14px;color:#6c757d;font-weight:500}.zebra-status-value{font-size:14px;color:#2c3e50;font-weight:600}.zebra-status-info{margin-top:12px;padding:12px;background:#e7f3ff;border-left:4px solid #667eea;border-radius:4px;display:flex;align-items:flex-start;gap:8px;font-size:13px;color:#495057;line-height:1.5}.zebra-info-icon{font-size:16px;flex-shrink:0}.zebra-status-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:30px 20px;text-align:center}.zebra-empty-icon{font-size:48px;margin-bottom:12px}.zebra-status-empty p{margin:5px 0;color:#64748b}.zebra-status-empty p:first-of-type{font-size:16px;font-weight:600;color:#475569}.zebra-empty-hint{font-size:13px;color:#94a3b8;font-style:italic}@keyframes slideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.zebra-preview-modal{min-width:600px;max-width:700px}.preview-info{padding:10px 0}.preview-stats{list-style:none;padding:0;margin:15px 0;display:flex;gap:30px}.preview-stats li{font-size:16px;color:#2c3e50}.preview-certificates{margin:20px 0}.cert-list-preview{max-height:250px;overflow-y:auto;background:#f8f9fa;border:1px solid #dee2e6;border-radius:6px;padding:15px;margin-top:10px}.cert-preview-item{padding:8px 12px;margin:5px 0;background:#fff;border-radius:4px;border-left:3px solid #9b59b6;font-size:13px;color:#495057}.cert-preview-more{padding:10px;text-align:center;color:#6c757d;font-style:italic;font-size:14px}.preview-warning{margin-top:20px;padding:15px;background:#fff3cd;border:1px solid #ffc107;border-radius:6px;border-left:4px solid #ffc107}.preview-warning p{margin:5px 0;color:#856404}.warning-detail{font-size:13px;margin-top:8px!important;color:#856404;line-height:1.5}.toast-notification{position:fixed;top:20px;right:20px;padding:16px 24px;border-radius:8px;box-shadow:0 4px 12px #00000026;display:flex;align-items:center;gap:15px;z-index:10000;animation:toastSlideIn .3s ease-out;min-width:350px;max-width:500px}@keyframes toastSlideIn{0%{transform:translate(400px);opacity:0}to{transform:translate(0);opacity:1}}.toast-success{background:#d4edda;border:1px solid #c3e6cb;border-left:4px solid #28a745}.toast-error{background:#f8d7da;border:1px solid #f5c6cb;border-left:4px solid #dc3545}.toast-message{flex:1;color:#155724;font-size:14px;font-weight:500;white-space:pre-line;line-height:1.6}.toast-error .toast-message{color:#721c24}.toast-close{background:transparent;border:none;font-size:20px;color:#6c757d;cursor:pointer;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background .2s}.toast-close:hover{background:#0000001a}.modal-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:9999;animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background:#fff;border-radius:12px;box-shadow:0 8px 32px #0000004d;animation:modalSlideIn .3s ease-out}@keyframes modalSlideIn{0%{transform:translateY(-50px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-header{padding:20px 25px;border-bottom:1px solid #dee2e6;display:flex;justify-content:space-between;align-items:center}.modal-header h2{margin:0;font-size:22px;color:#2c3e50}.modal-close{background:transparent;border:none;font-size:24px;color:#6c757d;cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .2s}.modal-close:hover{background:#f8f9fa;color:#495057}.modal-body{padding:25px;max-height:70vh;overflow-y:auto}.modal-footer{padding:20px 25px;border-top:1px solid #dee2e6;display:flex;justify-content:flex-end;gap:12px}.cropper-container{direction:ltr;font-size:0;line-height:0;position:relative;-ms-touch-action:none;touch-action:none;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.cropper-container img{backface-visibility:hidden;display:block;height:100%;image-orientation:0deg;max-height:none!important;max-width:none!important;min-height:0!important;min-width:0!important;width:100%}.cropper-wrap-box,.cropper-canvas,.cropper-drag-box,.cropper-crop-box,.cropper-modal{inset:0;position:absolute}.cropper-wrap-box,.cropper-canvas{overflow:hidden}.cropper-drag-box{background-color:#fff;opacity:0}.cropper-modal{background-color:#000;opacity:.5}.cropper-view-box{display:block;height:100%;outline:1px solid #39f;outline-color:#3399ffbf;overflow:hidden;width:100%}.cropper-dashed{border:0 dashed #eee;display:block;opacity:.5;position:absolute}.cropper-dashed.dashed-h{border-bottom-width:1px;border-top-width:1px;height:calc(100% / 3);left:0;top:calc(100% / 3);width:100%}.cropper-dashed.dashed-v{border-left-width:1px;border-right-width:1px;height:100%;left:calc(100% / 3);top:0;width:calc(100% / 3)}.cropper-center{display:block;height:0;left:50%;opacity:.75;position:absolute;top:50%;width:0}.cropper-center:before,.cropper-center:after{background-color:#eee;content:" ";display:block;position:absolute}.cropper-center:before{height:1px;left:-3px;top:0;width:7px}.cropper-center:after{height:7px;left:0;top:-3px;width:1px}.cropper-face,.cropper-line,.cropper-point{display:block;height:100%;opacity:.1;position:absolute;width:100%}.cropper-face{background-color:#fff;left:0;top:0}.cropper-line{background-color:#39f}.cropper-line.line-e{cursor:ew-resize;right:-3px;top:0;width:5px}.cropper-line.line-n{cursor:ns-resize;height:5px;left:0;top:-3px}.cropper-line.line-w{cursor:ew-resize;left:-3px;top:0;width:5px}.cropper-line.line-s{bottom:-3px;cursor:ns-resize;height:5px;left:0}.cropper-point{background-color:#39f;height:5px;opacity:.75;width:5px}.cropper-point.point-e{cursor:ew-resize;margin-top:-3px;right:-3px;top:50%}.cropper-point.point-n{cursor:ns-resize;left:50%;margin-left:-3px;top:-3px}.cropper-point.point-w{cursor:ew-resize;left:-3px;margin-top:-3px;top:50%}.cropper-point.point-s{bottom:-3px;cursor:s-resize;left:50%;margin-left:-3px}.cropper-point.point-ne{cursor:nesw-resize;right:-3px;top:-3px}.cropper-point.point-nw{cursor:nwse-resize;left:-3px;top:-3px}.cropper-point.point-sw{bottom:-3px;cursor:nesw-resize;left:-3px}.cropper-point.point-se{bottom:-3px;cursor:nwse-resize;height:20px;opacity:1;right:-3px;width:20px}@media(min-width:768px){.cropper-point.point-se{height:15px;width:15px}}@media(min-width:992px){.cropper-point.point-se{height:10px;width:10px}}@media(min-width:1200px){.cropper-point.point-se{height:5px;opacity:.75;width:5px}}.cropper-point.point-se:before{background-color:#39f;bottom:-50%;content:" ";display:block;height:200%;opacity:0;position:absolute;right:-50%;width:200%}.cropper-invisible{opacity:0}.cropper-bg{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAAA3NCSVQICAjb4U/gAAAABlBMVEXMzMz////TjRV2AAAACXBIWXMAAArrAAAK6wGCiw1aAAAAHHRFWHRTb2Z0d2FyZQBBZG9iZSBGaXJld29ya3MgQ1M26LyyjAAAABFJREFUCJlj+M/AgBVhF/0PAH6/D/HkDxOGAAAAAElFTkSuQmCC)}.cropper-hide{display:block;height:0;position:absolute;width:0}.cropper-hidden{display:none!important}.cropper-move{cursor:move}.cropper-crop{cursor:crosshair}.cropper-disabled .cropper-drag-box,.cropper-disabled .cropper-face,.cropper-disabled .cropper-line,.cropper-disabled .cropper-point{cursor:not-allowed}.photo-upload-container{max-width:800px;margin:0 auto;padding:20px;min-height:100vh}.photo-upload-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px;padding-bottom:15px;border-bottom:2px solid #e0e0e0}.header-left{display:flex;flex-direction:column;gap:.5rem}.header-right{display:flex;gap:1rem;align-items:center}.photo-upload-header h2{margin:0;color:#2c3e50;font-size:28px}.upload-subtitle{margin:0;color:#7f8c8d;font-size:14px}.upload-subtitle strong{color:#3498db;font-weight:600}.btn-back-dashboard{background:linear-gradient(135deg,#0f3460,#1a5490);color:#e9ecef;border:none;padding:10px 20px;border-radius:6px;font-size:14px;font-weight:600;cursor:pointer;box-shadow:0 2px 8px #0f34604d;transition:all .3s ease}.btn-back-dashboard:hover{background:linear-gradient(135deg,#1a5490,#2463b0);box-shadow:0 4px 12px #0f346066;transform:translateY(-2px)}.btn-back-dashboard:active{transform:translateY(0);box-shadow:0 2px 6px #0f34604d}.btn-logout{background:linear-gradient(135deg,#e74c3c,#c0392b);color:#fff;border:none;padding:10px 20px;border-radius:6px;font-size:14px;font-weight:600;cursor:pointer;box-shadow:0 2px 8px #e74c3c4d;transition:all .3s ease}.btn-logout:hover{background:linear-gradient(135deg,#c0392b,#a93226);transform:translateY(-2px);box-shadow:0 4px 12px #e74c3c66}.btn-logout:active{transform:translateY(0);box-shadow:0 1px 4px #e74c3c4d}.upload-step{background:#fff;border-radius:12px;padding:30px;box-shadow:0 2px 12px #0000001a}.select-step{text-align:center}.instructions h3{color:#2c3e50;margin-bottom:15px}.instructions ul{text-align:left;display:inline-block;margin:20px 0}.instructions li{margin:10px 0;color:#34495e;font-size:16px}.file-input{display:none}.file-input-label{display:block;background:linear-gradient(135deg,#3498db,#2980b9);color:#fff;padding:50px 30px;border-radius:12px;font-size:18px;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 12px #3498db4d;margin:20px auto;width:100%;max-width:100%;box-sizing:border-box;text-align:center;word-wrap:break-word}.file-input-label:hover{background:linear-gradient(135deg,#2980b9,#21618c);transform:translateY(-2px);box-shadow:0 6px 16px #3498db66}.file-input-label:active{transform:translateY(0)}.file-hint{color:#95a5a6;font-size:13px;margin-top:10px}.crop-step{max-width:100%}.crop-instructions h3{color:#2c3e50;margin-bottom:15px}.crop-hints{display:flex;gap:15px;flex-wrap:wrap;margin-bottom:20px}.crop-hints span{background:#ecf0f1;padding:8px 15px;border-radius:20px;font-size:12px;color:#34495e;font-weight:500}.crop-area{margin:20px 0;background:#000;border-radius:8px;overflow:hidden;max-height:60vh;position:relative;min-height:300px}.loading-overlay{position:absolute;inset:0;background:#000c;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:1000;border-radius:8px}.loading-overlay p{color:#fff;margin-top:15px;font-size:16px;font-weight:500}.loading-spinner{width:50px;height:50px;border:5px solid rgba(255,255,255,.3);border-top-color:#3498db;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.cropper-container{max-height:60vh!important;width:100%!important;transform:translateZ(0);-webkit-transform:translateZ(0);backface-visibility:hidden;-webkit-backface-visibility:hidden;perspective:1000px;-webkit-perspective:1000px;will-change:transform}.cropper-view-box,.cropper-face{border-radius:0;transform:translateZ(0);-webkit-transform:translateZ(0)}.cropper-canvas,.cropper-crop-box,.cropper-drag-box{transform:translateZ(0);-webkit-transform:translateZ(0)}.cropper-container *{-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;user-select:none;-webkit-user-select:none}.crop-area{position:relative;background:#000;contain:layout style paint;isolation:isolate;touch-action:pan-x pan-y;-webkit-overflow-scrolling:touch}.cropper-view-box,.cropper-crop-box,.cropper-drag-box{transform:translateZ(0);-webkit-transform:translate3d(0,0,0);backface-visibility:hidden;-webkit-backface-visibility:hidden}.cropper-bg{background-image:none!important;background-color:#000!important}.cropper-modal{background-color:#00000080!important;transition:none!important}.filename-input-section{margin:25px 0}.filename-input-section label{display:block;color:#34495e;font-weight:600;margin-bottom:10px;font-size:14px}.filename-input-wrapper{position:relative;display:flex;align-items:center;gap:10px}.filename-input{flex:1;padding:15px;border:2px solid #bdc3c7;border-radius:8px;font-size:16px;font-family:Courier New,monospace;font-weight:700;letter-spacing:1px;text-transform:uppercase;transition:all .3s ease}.filename-input:focus{outline:none;border-color:#3498db;box-shadow:0 0 0 3px #3498db1a}.filename-input.error{border-color:#e74c3c}.char-counter{font-size:12px;color:#95a5a6;font-weight:600;min-width:50px;text-align:right}.filename-error{display:block;color:#e74c3c;font-size:13px;margin-top:8px;font-weight:500}.filename-success{display:block;color:#27ae60;font-size:13px;margin-top:8px;font-weight:500}.zoom-controls{display:flex;gap:10px;justify-content:center;margin:20px 0;flex-wrap:wrap}.zoom-btn{background:linear-gradient(135deg,#3498db,#2980b9);color:#fff;border:none;padding:12px 20px;border-radius:8px;font-size:18px;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 2px 8px #3498db4d;min-width:60px}.zoom-btn:hover{background:linear-gradient(135deg,#2980b9,#21618c);transform:translateY(-2px);box-shadow:0 4px 12px #3498db66}.zoom-btn:active{transform:translateY(0)}.zoom-btn.reset-btn{background:linear-gradient(135deg,#95a5a6,#7f8c8d);min-width:90px;font-size:14px}.zoom-btn.reset-btn:hover{background:linear-gradient(135deg,#7f8c8d,#5d6d7e)}.zoom-btn.rotate-btn{background:linear-gradient(135deg,#e67e22,#d35400)}.zoom-btn.rotate-btn:hover{background:linear-gradient(135deg,#d35400,#ba4a00)}.dpad-controls{margin:20px 0}.dpad-label{text-align:center;color:#7f8c8d;font-size:13px;font-weight:600;margin-bottom:12px}.dpad-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);gap:8px;max-width:280px;margin:0 auto}.dpad-btn{background:linear-gradient(135deg,#9b59b6,#8e44ad);color:#fff;border:none;padding:18px;border-radius:8px;font-size:24px;font-weight:700;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 8px #9b59b64d;min-height:60px;display:flex;align-items:center;justify-content:center;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.dpad-btn:hover{background:linear-gradient(135deg,#8e44ad,#7d3c98);transform:translateY(-2px);box-shadow:0 4px 12px #9b59b666}.dpad-btn:active{transform:translateY(0) scale(.95);box-shadow:0 1px 4px #9b59b64d}.dpad-center{background:linear-gradient(135deg,#e74c3c,#c0392b);box-shadow:0 2px 8px #e74c3c4d;font-size:28px}.dpad-center:hover{background:linear-gradient(135deg,#c0392b,#a93226);box-shadow:0 4px 12px #e74c3c66}.crop-actions{display:flex;gap:10px;margin-top:25px;flex-wrap:wrap}.btn-primary,.btn-secondary{flex:1;min-width:120px;padding:15px 10px;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:all .3s ease}.btn-primary{background:linear-gradient(135deg,#27ae60,#229954);color:#fff;box-shadow:0 2px 8px #27ae604d}.btn-primary:hover:not(:disabled){background:linear-gradient(135deg,#229954,#1e8449);transform:translateY(-2px);box-shadow:0 4px 12px #27ae6066}.btn-primary:disabled{background:#bdc3c7;cursor:not-allowed;box-shadow:none}.btn-secondary{background:#ecf0f1;color:#34495e}.btn-secondary:hover{background:#d5dbdb;transform:translateY(-2px)}.uploading-step{text-align:center;padding:60px 30px}.uploading-step h3{color:#2c3e50;margin-bottom:30px;font-size:24px}.progress-container{margin:30px auto;max-width:400px}.progress-container progress{width:100%;height:30px;border-radius:15px;overflow:hidden;appearance:none;-webkit-appearance:none}.progress-container progress::-webkit-progress-bar{background:#ecf0f1;border-radius:15px}.progress-container progress::-webkit-progress-value{background:linear-gradient(90deg,#3498db,#2ecc71);border-radius:15px;transition:width .3s ease}.progress-container progress::-moz-progress-bar{background:linear-gradient(90deg,#3498db,#2ecc71);border-radius:15px}.progress-text{display:block;margin-top:15px;font-size:24px;font-weight:700;color:#3498db}.upload-status{color:#7f8c8d;font-size:16px;margin-top:20px}.success-step{text-align:center;padding:40px 30px}.success-icon,.error-icon{font-size:80px;margin-bottom:20px}.success-step h3{color:#2c3e50;margin-bottom:25px;font-size:26px}.upload-details{background:#ecf0f1;border-radius:8px;padding:20px;margin:25px 0;text-align:left}.upload-details p{margin:10px 0;color:#34495e;font-size:14px}.upload-details strong{color:#2c3e50;font-weight:600}.s3-url-label{margin-top:20px!important;padding-top:15px;border-top:1px solid #bdc3c7}.s3-url{display:block;background:#2c3e50;color:#2ecc71;padding:15px;border-radius:6px;font-size:11px;word-break:break-all;margin-top:10px;font-family:Courier New,monospace}.success-actions,.error-actions{display:flex;flex-direction:column;gap:15px;margin-top:30px}.error-message{color:#e74c3c;background:#fadbd8;padding:15px;border-radius:8px;margin:20px 0;font-size:14px}@media(max-width:768px){.photo-upload-container{padding:10px}.photo-upload-header h2{font-size:20px}.upload-step{padding:15px}.file-input-label{padding:40px 20px;font-size:16px}.crop-hints{font-size:10px;gap:8px}.crop-hints span{padding:5px 10px}.crop-area{max-height:45vh;margin-bottom:15px}.cropper-container{max-height:45vh!important}.zoom-controls{gap:8px;margin:15px 0}.zoom-btn{padding:10px 15px;font-size:16px;min-width:50px}.dpad-grid{max-width:240px;gap:6px}.dpad-btn{padding:14px;font-size:20px;min-height:50px}.dpad-center{font-size:24px}.zoom-btn.reset-btn{min-width:80px;font-size:12px}.filename-input{font-size:13px;padding:10px}.filename-input-section label{font-size:12px}.crop-actions{flex-direction:column;gap:12px}.btn-primary,.btn-secondary{width:100%;min-width:100%;padding:14px 10px;font-size:15px}.success-actions,.error-actions{width:100%}.s3-url{font-size:9px}}@media(max-width:480px){.photo-upload-container{padding:8px}.photo-upload-header h2{font-size:18px}.file-input-label{padding:35px 15px;font-size:15px}.instructions li{font-size:13px}.crop-area{max-height:40vh}.cropper-container{max-height:40vh!important}.zoom-controls{gap:6px;margin:12px 0}.zoom-btn{padding:8px 12px;font-size:14px;min-width:45px}.dpad-grid{max-width:200px;gap:5px}.dpad-btn{padding:12px;font-size:18px;min-height:45px}.dpad-center{font-size:22px}.dpad-label{font-size:11px}.zoom-btn.reset-btn{min-width:70px;font-size:11px}.filename-input{font-size:12px;padding:8px}.btn-primary,.btn-secondary{padding:12px 8px;font-size:14px}}.modal-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:9999;padding:20px}.modal-content{background:#fff;border-radius:12px;padding:30px;max-width:500px;width:100%;box-shadow:0 10px 40px #0000004d;animation:modalFadeIn .3s ease}@keyframes modalFadeIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.modal-content h3{margin:0 0 15px;color:#e67e22;font-size:22px;text-align:center}.modal-message{color:#34495e;font-size:15px;margin:15px 0;text-align:center;line-height:1.6}.modal-message strong{color:#2c3e50;font-weight:600}.modal-question{color:#7f8c8d;font-size:14px;margin:20px 0 15px;text-align:center;font-weight:600}.modal-actions{display:flex;gap:12px;margin-top:25px;flex-wrap:wrap}.modal-btn{flex:1;min-width:120px;padding:14px 16px;border:none;border-radius:8px;font-size:15px;font-weight:600;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;justify-content:center;gap:6px}.btn-warning{background:linear-gradient(135deg,#e67e22,#d35400);color:#fff;box-shadow:0 2px 8px #e67e224d}.btn-warning:hover{background:linear-gradient(135deg,#d35400,#ba4a00);transform:translateY(-2px);box-shadow:0 4px 12px #e67e2266}.btn-cancel{background:#95a5a6;color:#fff}.btn-cancel:hover{background:#7f8c8d;transform:translateY(-2px)}@media(max-width:768px){.modal-content{padding:25px 20px}.modal-content h3{font-size:20px}.modal-actions{flex-direction:column}.modal-btn{width:100%;min-width:100%}}@media print{.photo-upload-container{display:none}}.filename-confirm-section{margin-top:20px;padding-top:20px;border-top:1px dashed #ddd;animation:slideDown .3s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.filename-confirm-section label{display:block;margin-bottom:8px;font-weight:600;color:#2c3e50;font-size:14px}.filename-confirm-section .filename-input.success{border-color:#27ae60;background-color:#27ae600d}.character-match-feedback{display:flex;align-items:center;gap:8px;margin-top:10px;padding:8px 12px;background:#f8f9fa;border-radius:6px;font-family:Courier New,monospace;font-size:14px}.match-label{color:#7f8c8d;font-weight:500}.match-chars{display:flex;gap:2px;flex-wrap:wrap}.match-char{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;font-size:12px;border-radius:3px;font-weight:700}.match-char.match{background:#d4edda;color:#155724}.match-char.mismatch{background:#f8d7da;color:#721c24;animation:shake .3s ease-in-out}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-2px)}75%{transform:translate(2px)}}.remaining-chars{color:#6c757d;font-size:12px;font-style:italic;margin-left:8px}@media(max-width:480px){.filename-confirm-section{margin-top:15px;padding-top:15px}.character-match-feedback{flex-direction:column;align-items:flex-start;gap:6px}.match-char{width:18px;height:18px;font-size:11px}.remaining-chars{margin-left:0;margin-top:4px}}.filename-confirm-section input[type=text]::placeholder{color:#95a5a6;font-style:italic}.filename-confirm-section input[type=text]{user-select:none;-webkit-user-select:none}body{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;padding:1rem;margin:0;background:linear-gradient(135deg,#0f172a,#1e293b,#0c1220,#1e293b,#0f172a),radial-gradient(ellipse 800px 600px at var(--mouse-x, 50%) var(--mouse-y, 50%),rgba(212,175,55,.15) 0%,transparent 50%),radial-gradient(ellipse 600px 400px at calc(100% - var(--mouse-x, 50%)) calc(100% - var(--mouse-y, 50%)),rgba(184,134,11,.2) 0%,transparent 60%),radial-gradient(ellipse 1000px 800px at var(--mouse-x, 50%) var(--mouse-y, 50%),rgba(59,130,246,.08) 0%,transparent 70%);background-size:100% 100%,150% 150%,120% 120%,180% 180%;transition:background-position .3s ease-out;box-sizing:border-box;font-size:14px;min-height:100vh;position:relative}@media(min-width:768px){body{font-size:16px}}.container{max-width:480px;margin:auto;background:#fff;border-radius:24px;padding:1.2rem;box-shadow:inset 1px 1px 8px #dddc,inset -1px -1px 8px #ffffffe6,0 25px 70px #0009,0 20px 50px #00000080,0 15px 35px #0006,0 10px 20px #0000004d,0 5px 10px #0003,0 0 0 1px #fff6,0 0 40px #d4af371a;animation:popIn .6s ease-in-out;position:relative;overflow:hidden;transition:transform .3s ease,box-shadow .3s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.container:hover{transform:translateY(-4px);box-shadow:inset 1px 1px 8px #dddc,inset -1px -1px 8px #ffffffe6,0 35px 90px #000000b3,0 30px 70px #0009,0 25px 50px #00000080,0 20px 35px #0006,0 15px 25px #0000004d,0 10px 15px #0003,0 0 0 1px #ffffff80,0 0 60px #d4af3733}.logo{text-align:center;margin-bottom:1.5rem;animation:slideLeftIn .8s ease-out both}.logo img{width:100%;max-width:300px;height:auto;transition:transform .4s ease,filter .4s ease;filter:drop-shadow(0 0 5px rgba(0,64,128,.2))}.logo img:hover{transform:scale(1.07);filter:drop-shadow(0 0 10px rgba(0,64,128,.3))}.section{margin-bottom:1.5rem;position:relative;z-index:1;opacity:0;transform:translateY(20px);animation:sectionScroll 1s ease-out forwards}.field{display:flex;justify-content:space-between;flex-wrap:wrap;padding:.5rem 0;border-bottom:1px solid #eee;transition:background .3s ease,box-shadow .3s ease}.field:hover{background:#f9f9fc;box-shadow:inset 0 0 4px #0000000d}.field strong{flex:0 0 48%;text-align:left;color:#004080}.field span,.field .multi-line-content{flex:0 0 48%;text-align:right}.field .multi-line-content div{margin-bottom:.25rem;line-height:1.4}.field .multi-line-content div:last-child{margin-bottom:0}.gemstone-specifications{text-align:center!important;flex-direction:column!important}.gemstone-specifications strong{flex:none!important;text-align:center!important;margin-bottom:.75rem;color:#004080;display:block}.gemstone-specs-content{flex:none!important;text-align:center!important}.gemstone-spec-line{margin-bottom:.75rem;line-height:1.4;color:#333;font-weight:500}.gemstone-spec-line:last-child{margin-bottom:0}.image-box{width:100%;max-width:300px;height:300px;margin:1rem auto;border:2px solid #004080;border-radius:18px;display:flex;justify-content:center;align-items:center;overflow:hidden;animation:slideLeftIn 1s ease-out both;box-shadow:inset 0 2px 6px #fffc,inset 0 -2px 6px #ccc9,0 12px 30px #0003,0 8px 20px #00000026,0 4px 10px #0000001a}.image-box img{max-width:100%;max-height:100%;transition:transform .3s ease,filter .3s ease}.image-box img:hover{transform:scale(1.05);filter:brightness(1.05) drop-shadow(0 0 8px rgba(0,64,128,.2))}.footer{font-size:.8rem;text-align:center;margin-top:2rem;border-top:1px solid #ccc;padding-top:1rem;color:#666}.footer a{color:#004080;text-decoration:none}.footer a:hover{text-decoration:underline}.abbreviations{border:2px solid black;padding:1rem;margin-top:1.5rem;border-radius:8px;background-color:#fdfdfd}.abbreviations h3{color:red;font-weight:700;margin-top:0;font-size:1rem}.abbreviations .abbreviation-lines div{margin-bottom:.5rem;line-height:1.4;padding:.25rem 0;border-bottom:1px solid #eee}.abbreviations .abbreviation-lines div:last-child{border-bottom:none;margin-bottom:0}.info-block{background-color:#f4f4f4;padding:1rem;border-radius:8px;margin-top:1.5rem;font-size:.85rem;line-height:1.5;color:#444}.info-block strong{display:block;margin-bottom:.5rem;color:#333}.no-image{display:flex;align-items:center;justify-content:center;height:100%;color:#666;font-style:italic;text-align:center;padding:1rem}.spinner{border:4px solid #f3f3f3;border-top:4px solid #004080;border-radius:50%;width:40px;height:40px;animation:spin 1s linear infinite;margin:0 auto 1rem}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes slideLeftIn{0%{opacity:0;transform:translate(-80px)}to{opacity:1;transform:translate(0)}}@keyframes sectionScroll{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}@keyframes popIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@media(max-width:480px){.container{margin:.5rem;padding:1rem}.field{flex-direction:column}.field strong,.field span,.field .multi-line-content{flex:1 1 100%;text-align:left}.field span{margin-top:.25rem;font-weight:500}}.App{text-align:center}.field-group{margin-bottom:1rem}.char-count{font-size:.75rem;color:#6b7280;margin-top:.25rem}.char-count.warning{color:#f59e0b}.status-window{margin-top:1rem;padding:1rem;border-radius:.375rem;max-height:200px;overflow-y:auto}.status-message{padding:.5rem;margin-bottom:.5rem;border-radius:.25rem;font-size:.875rem}.status-message.error{background-color:#fef2f2;color:#dc2626;border:1px solid #fecaca}.status-message.success{background-color:#f0fdf4;color:#16a34a;border:1px solid #bbf7d0}.status-message.info{background-color:#eff6ff;color:#2563eb;border:1px solid #bfdbfe}@tailwind base;@tailwind components;@tailwind utilities;body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}
