body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;background-color:#f4f7f6;color:#333}#app{flex-direction:column;min-height:100vh;padding:20px}#app,.app-header{display:flex;align-items:center;box-sizing:border-box}.app-header{width:100%;max-width:1200px;justify-content:space-between;padding:0 1rem;margin-bottom:2rem}.header-brand{display:flex;align-items:center;gap:1rem;text-decoration:none;color:inherit}.logo{width:50px;height:50px}.app-header h1{font-size:1.5rem;margin:0}.auth-actions{display:flex;align-items:center;gap:1rem}.user-email{font-weight:700;color:#555}.auth-button{border:1px solid #42b983;background-color:#42b983;color:#fff;padding:.5rem 1rem;border-radius:8px;font-weight:700;cursor:pointer;transition:all .3s;white-space:nowrap}.auth-button:hover{opacity:.8}.auth-button.logout{background-color:transparent;color:#42b983}.app-main{width:100%;display:flex;justify-content:center;align-items:flex-start;flex-grow:1}.app-footer{margin-top:auto;padding-top:2rem;color:#888;font-size:.9rem;text-align:center}.icp-info{margin-top:.5rem;font-size:.8rem}.icp-info a{color:#aaa;text-decoration:none}.icp-info a:hover{text-decoration:underline}.tool-card-link[data-v-3290778a]{text-decoration:none;color:inherit}.tool-card[data-v-3290778a]{background:#fff;padding:2rem;border-radius:16px;box-shadow:0 8px 30px rgba(0,0,0,.07);text-align:center;transition:all .3s ease;height:100%;box-sizing:border-box}.tool-card[data-v-3290778a]:hover{transform:translateY(-8px);box-shadow:0 12px 40px rgba(66,185,131,.15)}.card-icon[data-v-3290778a]{font-size:3rem;margin-bottom:1rem}.card-title[data-v-3290778a]{font-size:1.5rem;margin-bottom:.8rem}.card-description[data-v-3290778a]{font-size:1rem;color:#666;line-height:1.6}.home-container[data-v-19ef2a2c]{width:100%;max-width:1200px;padding:1rem}.intro-text[data-v-19ef2a2c]{text-align:center;margin-bottom:3rem}.intro-text h2[data-v-19ef2a2c]{font-size:2.5rem;color:#333}.intro-text p[data-v-19ef2a2c]{font-size:1.2rem;color:#666}.tool-grid[data-v-19ef2a2c]{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:2rem}.desensitizer-card[data-v-5d0e74c2]{background-color:#fff;padding:2rem;border-radius:12px;box-shadow:0 8px 30px rgba(0,0,0,.1);max-width:500px;min-height:250px;margin:2rem auto;text-align:center;transition:all .3s ease;display:flex;flex-direction:column;justify-content:center}.custom-file-upload[data-v-5d0e74c2]{border:2px dashed #42b983;color:#42b983;border-radius:8px;width:80%;box-sizing:border-box}.custom-file-upload[data-v-5d0e74c2],.download-button[data-v-5d0e74c2]{display:inline-block;padding:1rem 2rem;cursor:pointer;font-weight:700;transition:all .3s ease;margin-top:1.5rem}.download-button[data-v-5d0e74c2]{text-decoration:none;background-color:#42b983;color:#fff;border:none;font-size:1rem;border-radius:8px}.processing-state p[data-v-5d0e74c2]{margin-top:1rem;color:#555;font-weight:700}.download-section[data-v-5d0e74c2]{display:flex;flex-direction:column;align-items:center;gap:1rem}.success-message[data-v-5d0e74c2]{color:#27ae60;font-weight:700;font-size:1.2rem}.reset-button[data-v-5d0e74c2]{background:none;border:none;color:#3498db;text-decoration:underline;cursor:pointer;margin-top:.5rem}.error-message[data-v-5d0e74c2]{color:#e74c3c;margin-top:1rem;font-weight:700}.spinner[data-v-5d0e74c2]{display:inline-block;width:2em;height:2em;border:3px solid rgba(0,0,0,.1);border-radius:50%;border-top-color:#42b983;animation:spin-5d0e74c2 1s ease-in-out infinite}@keyframes spin-5d0e74c2{to{transform:rotate(1turn)}}.rules-selection[data-v-5d0e74c2]{display:flex;justify-content:center;gap:2rem;margin:1rem 0}.rules-selection label[data-v-5d0e74c2]{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-weight:500}.rules-selection input[type=checkbox][data-v-5d0e74c2]{width:1.2em;height:1.2em;cursor:pointer}.tool-view-container[data-v-d7303bee]{width:100%}.back-to-home[data-v-d7303bee]{text-align:center;margin-bottom:1.5rem}.back-to-home a[data-v-d7303bee]{font-weight:700;color:#42b983;text-decoration:none;transition:color .3s}.back-to-home a[data-v-d7303bee]:hover{color:#27ae60;text-decoration:underline}.tool-view-container[data-v-4d258370]{width:100%}.back-to-home[data-v-4d258370]{text-align:center;margin-bottom:1.5rem}.back-to-home a[data-v-4d258370]{font-weight:700;color:#42b983;text-decoration:none;transition:color .3s}.back-to-home a[data-v-4d258370]:hover{color:#27ae60;text-decoration:underline}.desensitizer-card[data-v-4d258370]{background-color:#fff;padding:2rem;border-radius:12px;box-shadow:0 8px 30px rgba(0,0,0,.1);max-width:500px;min-height:250px;margin:0 auto;text-align:center;transition:all .3s ease;display:flex;flex-direction:column;justify-content:center}.custom-file-upload[data-v-4d258370]{border:2px dashed #42b983;color:#42b983;border-radius:8px;width:80%;box-sizing:border-box}.custom-file-upload[data-v-4d258370],.download-button[data-v-4d258370]{display:inline-block;padding:1rem 2rem;cursor:pointer;font-weight:700;transition:all .3s ease}.download-button[data-v-4d258370]{text-decoration:none;background-color:#42b983;color:#fff;border:none;font-size:1rem;border-radius:8px;margin-top:1.5rem}.processing-state p[data-v-4d258370]{margin-top:1rem;color:#555;font-weight:700}.download-section[data-v-4d258370]{display:flex;flex-direction:column;align-items:center;gap:1rem}.success-message[data-v-4d258370]{color:#27ae60;font-weight:700;font-size:1.2rem}.reset-button[data-v-4d258370]{background:none;border:none;color:#3498db;text-decoration:underline;cursor:pointer;margin-top:.5rem}.error-message[data-v-4d258370]{color:#e74c3c;margin-top:1rem;font-weight:700}.spinner[data-v-4d258370]{display:inline-block;width:2em;height:2em;border:3px solid rgba(0,0,0,.1);border-radius:50%;border-top-color:#42b983;animation:spin-4d258370 1s ease-in-out infinite}@keyframes spin-4d258370{to{transform:rotate(1turn)}}.tool-placeholder[data-v-0a001cd2]{text-align:center;padding:4rem}.auth-container[data-v-446f1b9b]{width:100%;display:flex;justify-content:center}.auth-card[data-v-446f1b9b]{background:#fff;padding:2.5rem;border-radius:16px;box-shadow:0 8px 30px rgba(0,0,0,.07);max-width:400px;width:100%;box-sizing:border-box}.auth-title[data-v-446f1b9b]{text-align:center;font-size:1.8rem;font-weight:600;color:#2c3e50;margin-top:0;margin-bottom:.5rem}.auth-subtitle[data-v-446f1b9b]{text-align:center;color:#666;margin-bottom:2.5rem}.auth-form .form-group[data-v-446f1b9b]{margin-bottom:1.5rem}.form-group label[data-v-446f1b9b]{display:block;margin-bottom:.5rem;font-weight:500;color:#555}.form-group input[data-v-446f1b9b]{width:100%;padding:.8rem 1rem;border:1px solid #ddd;border-radius:8px;box-sizing:border-box;transition:border-color .3s;font-size:1rem}.form-group input[data-v-446f1b9b]:focus{outline:none;border-color:#42b983;box-shadow:0 0 0 3px rgba(66,185,131,.1)}.auth-button[data-v-446f1b9b]{width:100%;border:1px solid #42b983;background-color:#42b983;color:#fff;padding:.8rem 1rem;border-radius:8px;font-weight:700;font-size:1rem;cursor:pointer;transition:all .3s}.auth-button[data-v-446f1b9b]:hover:not(:disabled){opacity:.8;transform:translateY(-2px)}.auth-button[data-v-446f1b9b]:disabled{background-color:#a5d6b8;border-color:#a5d6b8;cursor:not-allowed}.switch-auth[data-v-446f1b9b]{margin-top:1.5rem;text-align:center;color:#555}.switch-auth a[data-v-446f1b9b]{color:#42b983;font-weight:700;cursor:pointer;text-decoration:none}.switch-auth a[data-v-446f1b9b]:hover{text-decoration:underline}.error-message[data-v-446f1b9b]{color:#e74c3c;margin-bottom:1.5rem;text-align:center;font-weight:500}.auth-card[data-v-23687908]{background:#fff;padding:2.5rem;border-radius:16px;box-shadow:0 10px 35px rgba(0,0,0,.08);max-width:400px;width:100%;text-align:center}.auth-card h2[data-v-23687908]{color:#333;margin-bottom:.5rem}.auth-card p[data-v-23687908]{color:#777;margin-bottom:2rem}.auth-form .form-group[data-v-23687908]{text-align:left;margin-bottom:1.5rem}.form-group label[data-v-23687908]{display:block;margin-bottom:.5rem;font-weight:700;color:#555}.form-group input[data-v-23687908]{width:100%;padding:.8rem 1rem;border:1px solid #ddd;border-radius:8px;box-sizing:border-box;transition:border-color .3s}.form-group input[data-v-23687908]:focus{outline:none;border-color:#42b983}.auth-button[data-v-23687908]{width:100%;padding:1rem;border:none;background:linear-gradient(90deg,#42b983,#27ae60);color:#fff;font-weight:700;font-size:1rem;border-radius:8px;cursor:pointer;transition:all .3s}.auth-button[data-v-23687908]:hover{transform:translateY(-2px);box-shadow:0 4px 15px rgba(0,0,0,.1)}.auth-button[data-v-23687908]:disabled{background:#ccc}.switch-auth[data-v-23687908]{margin-top:1.5rem;color:#555}.switch-auth a[data-v-23687908]{color:#42b983;font-weight:700;cursor:pointer;text-decoration:underline}.error-message[data-v-23687908]{color:#e74c3c;margin-top:1rem;font-weight:700}.info-message[data-v-23687908]{color:#27ae60;margin-top:1rem;font-weight:700}.verification-group[data-v-23687908]{display:flex;align-items:flex-end;gap:1rem}.verification-group input[data-v-23687908]{flex-grow:1}.send-code-button[data-v-23687908]{padding:.8rem 1rem;border:1px solid #42b983;background:transparent;color:#42b983;border-radius:8px;cursor:pointer;font-weight:700;white-space:nowrap}.send-code-button[data-v-23687908]:disabled{background:#f0f0f0;color:#aaa;border-color:#ddd;cursor:not-allowed}.admin-container[data-v-08c53561]{width:100%;max-width:900px;text-align:center}.stats-container[data-v-08c53561]{display:flex;flex-direction:column;gap:2rem;margin-top:2rem}.stat-card[data-v-08c53561]{background:#fff;padding:2rem;border-radius:16px;box-shadow:0 8px 30px rgba(0,0,0,.07)}.stat-number[data-v-08c53561]{font-size:2.5rem;font-weight:700;color:#42b983}.user-stats-table[data-v-08c53561]{background:#fff;padding:2rem;border-radius:16px;box-shadow:0 8px 30px rgba(0,0,0,.07)}.user-stats-table h3[data-v-08c53561]{margin-top:0}table[data-v-08c53561]{width:100%;border-collapse:collapse;margin-top:1.5rem}td[data-v-08c53561],th[data-v-08c53561]{padding:.8rem 1rem;text-align:left;border-bottom:1px solid #f0f0f0}th[data-v-08c53561]{background-color:#f9f9f9;font-weight:700}td[rowspan][data-v-08c53561]{vertical-align:top;font-weight:500}.loading-state[data-v-08c53561]{margin-top:4rem}.spinner[data-v-08c53561]{display:inline-block;width:2em;height:2em;border:3px solid rgba(0,0,0,.1);border-radius:50%;border-top-color:#42b983;animation:spin-08c53561 1s ease-in-out infinite}@keyframes spin-08c53561{to{transform:rotate(1turn)}}.error-message[data-v-08c53561]{color:#e74c3c;margin-top:1rem;font-weight:700}.permission-denied[data-v-08c53561]{margin-top:4rem;font-size:1.2rem;color:#555}