*{box-sizing:border-box;margin:0;padding:0}body{color:#1a1a1a;box-sizing:border-box;background:#fafafa;min-height:100vh;padding:20px 20px 0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.5}.container{max-width:800px;margin:0 auto}button{cursor:pointer;border:none;border-radius:8px;padding:10px 20px;font-size:.9rem;font-weight:500;transition:all .2s}.btn-primary{color:#fff;background:#1a73e8}.btn-primary:hover{background:#1557b0}.btn-secondary{color:#1a1a1a;background:#f5f5f5;border:1px solid #e5e5e5}.btn-secondary:hover{background:#e5e5e5}.btn-danger{color:#dc3545;background:#fff;border:1px solid #e5e5e5}.btn-danger:hover{color:#fff;background:#dc3545}.form-group{margin-bottom:20px}label{color:#1a1a1a;margin-bottom:8px;font-size:.9rem;font-weight:500;display:block}input[type=text],input[type=email],input[type=number],input[type=password],textarea{background:#fff;border:1px solid #e5e5e5;border-radius:8px;width:100%;padding:12px;font-family:inherit;font-size:.95rem;transition:all .2s}input:focus,textarea:focus{border-color:#1a73e8;outline:none;box-shadow:0 0 0 3px #1a73e81a}textarea{resize:vertical;min-height:150px}.card{background:#fff;border:1px solid #e5e5e5;border-radius:12px;margin-bottom:20px;padding:24px}.card:hover{box-shadow:0 2px 8px #00000014}.back-btn{color:#1a73e8;margin-bottom:24px;font-size:.9rem;font-weight:500;text-decoration:none;display:inline-block}.back-btn:hover{text-decoration:underline}h1{color:#1a1a1a;margin-bottom:6px;font-size:1.5rem;font-weight:600}h2{color:#1a1a1a;margin-bottom:24px;font-size:1.5rem;font-weight:600}h3{color:#1a1a1a;margin-bottom:16px;font-size:1.1rem;font-weight:600}.envelopes-container{background:#fff;border:1px solid #e5e5e5;border-radius:12px;margin-bottom:0;padding:32px}.envelopes-grid{grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:16px;max-width:800px;margin:0 auto;display:grid}.envelope{cursor:pointer;border-radius:8px;flex-direction:column;align-items:center;gap:8px;padding:12px;transition:all .3s;display:flex}.envelope:hover{background:#1a73e80d;transform:translateY(-2px)}.envelope-icon{box-sizing:content-box;width:50px;height:50px;padding:4px;transition:all .3s}.envelope.taken .envelope-icon{opacity:.3}.envelope.available:hover .envelope-icon,.envelope.mine:hover .envelope-icon{transform:scale(1.1)}.envelope.taken:hover{background:0 0;transform:none}.envelope-number{color:#1a73e8;font-size:.75rem;font-weight:600}.toast{color:#fff;opacity:0;z-index:2000;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#1a1a1ad9;border-radius:8px;padding:12px 20px;font-size:.9rem;transition:opacity .2s;position:fixed;top:20px;left:50%;transform:translate(-50%);box-shadow:0 4px 12px #0000004d}.toast.show{opacity:1}.modal{z-index:1000;background:#0009;justify-content:center;align-items:center;width:100%;height:100%;display:none;position:fixed;top:0;left:0;overflow-y:auto}.modal.active{display:flex}.modal-content{background:#fff;border:1px solid #e5e5e5;border-radius:12px;width:90%;max-width:600px;max-height:90vh;margin:20px;padding:24px;overflow-y:auto;box-shadow:0 8px 32px #0000001f}.modal-actions{flex-wrap:wrap;gap:8px;margin-top:16px;display:flex}.modal-btn{cursor:pointer;text-align:center;border:none;border-radius:8px;flex:1;min-width:120px;padding:14px 20px;font-size:1rem;font-weight:600;transition:all .2s}.letter-viewer{background:#fff;min-height:100vh;padding:20px}.letter-viewer-header{justify-content:space-between;align-items:center;gap:16px;max-width:800px;margin:0 auto 16px;display:flex}.letter-viewer-header .back-btn{margin-bottom:0}.letter-viewer-title{color:#1a1a1a;font-size:1.1rem;font-weight:600}.letter-viewer-content{white-space:pre-wrap;color:#444;background:#fafafa;border:1px solid #e5e5e5;border-radius:12px;max-width:800px;margin:0 auto;padding:32px;font-size:1rem;line-height:1.8}.letter-viewer-actions{flex-wrap:wrap;gap:12px;max-width:800px;margin:24px auto 0;display:flex}.letter-viewer-actions button{cursor:pointer;border:none;border-radius:8px;flex:1;min-width:200px;padding:14px 24px;font-size:1rem;font-weight:600;transition:all .2s}.success-message{color:#2e7d32;background:#e8f5e9;border:1px solid #4caf50;border-radius:8px;margin-bottom:20px;padding:12px 16px;font-size:.9rem;display:none}.success-message.show{display:block}.error-message{text-align:center;background:#fff;border:1px solid #e5e5e5;border-radius:12px;max-width:500px;margin:40px auto;padding:32px}.error-message h2{color:#dc3545;margin-bottom:12px;font-size:1.25rem;font-weight:600}.error-message p{color:#666;margin-bottom:20px;font-size:.9rem}.disclaimer{text-align:center;color:#666;border-top:1px solid #e5e5e5;margin-top:20px;padding:20px;font-size:.85rem;font-style:italic}.disclaimer:before{content:"* ";color:#1a73e8;font-weight:700}.status-badge{text-transform:uppercase;letter-spacing:.5px;border-radius:6px;padding:4px 8px;font-size:.7rem;font-weight:600}.status-available{color:#2e7d32;background:#e8f5e9}.status-claimed{color:#c62828;background:#ffebee}.toggle-tabs{border-bottom:2px solid #e5e5e5;gap:8px;margin-bottom:24px;display:flex}.toggle-tab{color:#666;cursor:pointer;background:0 0;border:none;border-bottom:3px solid #0000;padding:12px 24px;font-size:.95rem;font-weight:500;transition:all .2s}.toggle-tab:hover{color:#1a73e8;background:#f8fbff}.toggle-tab.active{color:#1a73e8;border-bottom-color:#1a73e8}.campaign-card{cursor:pointer;background:#fff;border:1px solid #e5e5e5;border-radius:12px;margin-bottom:20px;padding:24px;transition:all .2s}.campaign-card:hover{box-shadow:0 2px 8px #00000014}.campaign-header{justify-content:space-between;align-items:start;margin-bottom:16px;display:flex}.campaign-title{color:#1a1a1a;cursor:pointer;font-size:1.25rem;font-weight:600;transition:color .2s}.campaign-title:hover{color:#1a73e8}.campaign-stats{color:#999;margin-top:4px;font-size:.85rem}.campaign-actions{flex-wrap:wrap;gap:8px;display:flex}.add-campaign-btn{color:#888;cursor:pointer;background:#fff;border:2px dashed #ccc;border-radius:8px;justify-content:center;align-items:center;gap:8px;width:100%;margin-top:12px;margin-bottom:0;padding:16px;font-size:.9rem;font-weight:500;transition:all .2s;display:flex}.add-campaign-btn:hover{color:#1a73e8;background:#f8fbff;border-color:#1a73e8}.generation-progress{text-align:center;background:#fff;border:2px solid #1a73e8;border-radius:12px;padding:24px}.spinner{border:4px solid #e5e5e5;border-top-color:#1a73e8;border-radius:50%;width:50px;height:50px;margin:0 auto 20px;animation:1s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.progress-text{color:#1a73e8;margin-bottom:16px;font-size:1.2rem;font-weight:600}.completed-letters{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:16px;display:flex}.completed-letter{color:#1a73e8;background:#e3f2fd;border-radius:6px;padding:6px 12px;font-size:.9rem;font-weight:600;animation:.3s ease-in fadeIn}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.rename-btn{color:#666;cursor:pointer;background:#f5f5f5;border:1px solid #e5e5e5;border-radius:6px;padding:4px 12px 6px;font-size:.85rem;transition:all .2s}.rename-btn:hover{color:#1a1a1a;background:#e5e5e5}.delete-icon{color:#dc3545;cursor:pointer;opacity:.8;background:0 0;border:none;padding:0 8px 4px;font-size:1.5rem;transition:all .2s}.delete-icon:hover{opacity:1;color:#a71d2a}.share-btn{color:#1a1a1a;cursor:pointer;background:#f5f5f5;border:1px solid #e5e5e5;border-radius:8px;padding:10px 20px;font-size:.9rem;font-weight:500;transition:all .2s}.share-btn:hover{background:#e5e5e5;border-color:#1a73e8}.envelopes-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.envelopes-count{color:#666;font-size:.9rem}.envelopes-header-buttons{flex-wrap:wrap;gap:8px;display:flex}.delete-all-btn{color:#dc3545;cursor:pointer;background:#fff;border:1px solid #dc3545;border-radius:6px;align-items:center;gap:6px;padding:8px 16px;font-size:.85rem;font-weight:500;transition:all .2s;display:inline-flex}.delete-all-btn:hover{color:#fff;background:#dc3545}@media (max-width:400px){.envelopes-header{flex-direction:column;align-items:stretch}.envelopes-header-buttons{flex-direction:column}.envelopes-header-buttons button{justify-content:center;width:100%}}.no-campaigns{text-align:center;color:#999;padding:60px 20px}.no-letters-msg{text-align:center;color:#999;grid-column:1/-1;padding:50px 20px}header{background:#fff;border:1px solid #e5e5e5;border-radius:12px;margin-bottom:20px;padding:24px}.header-content{justify-content:space-between;align-items:start;gap:20px;display:flex}.description{color:#666;font-size:.95rem}
