*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%}.App{display:grid;place-items:center;min-height:100vh;padding:2rem;background:linear-gradient(135deg,#667eea,#764ba2)}.loading,.error-container,.results-container{margin-top:20px;padding:20px;border-radius:8px}.loading{text-align:center;color:#4a5568}.error-container{background:#fed7d7;border:1px solid #feb2b2;color:#c53030}.results-container{background:#fff;border-radius:15px;padding:40px;box-shadow:0 20px 40px #0000001a;margin-top:30px}.results-container h2{color:#4a5568;margin-bottom:30px;font-size:1.8rem;text-align:center}.result-section{background:#f7fafc;border-radius:10px;padding:25px;border-left:4px solid #667eea;margin-bottom:25px}.result-section h3{color:#2d3748;margin-bottom:15px;font-size:1.3rem;display:flex;align-items:center;gap:10px}.result-section h3:before{content:"📋";font-size:1.2rem}.result-content{color:#4a5568;line-height:1.7;white-space:pre-wrap}.result-content ol,.result-content ul{list-style-position:outside;padding-left:2em;margin:1em 0}.result-content li{padding-left:.5em;margin-bottom:.8em}.result-content ol ul,.result-content ul ul{margin-top:.5em;margin-bottom:.5em;padding-left:2em}.sources-section{margin-top:15px;padding:0 5px;border-top:1px solid #e2e8f0}.sources-section h4{color:#2d3748;margin-bottom:10px;font-size:1rem}.source-item{background:#fff;border-radius:6px;padding:12px 16px;margin-bottom:8px;border:1px solid #e2e8f0;box-sizing:border-box;width:100%;overflow-wrap:break-word}.source-item a{color:#667eea;text-decoration:none;font-weight:500}.source-item a:hover{text-decoration:underline}.source-content{color:#718096;font-size:.9rem;margin-top:5px}.app-content{display:flex;justify-content:center;align-items:flex-start;min-height:100vh;width:100vw;background:linear-gradient(135deg,#e0e7ff,#f0f4ff);box-sizing:border-box;padding-top:2rem}body,.landing-bg{font-family:Inter,Roboto,Arial,sans-serif}.logo,.brand,h1,h2,h3{font-family:Poppins,Inter,Arial,sans-serif}.logo-row .logo,.brand{font-family:Poppins,Inter,Arial,sans-serif;font-weight:800;letter-spacing:1px}.landing-bg{min-height:100vh;width:100vw;background:linear-gradient(135deg,#e0e7ff,#f0f4ff);display:flex;flex-direction:column}.landing-header{display:flex;justify-content:space-between;align-items:center;padding:2rem 3rem 1rem;background:transparent;border-bottom:none}.logo-row .logo{font-size:2rem;font-weight:700;color:#6366f1;letter-spacing:1px;background:#fff;padding:.5rem 1.2rem;border-radius:8px;box-shadow:0 2px 12px #6366f114}.landing-main{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;width:100vw}.main-card{background:#fff;border-radius:18px;box-shadow:0 8px 32px #6366f11f;padding:3rem 2.5rem 2.5rem;max-width:600px;width:100%;margin:2rem auto;display:flex;flex-direction:column;align-items:center}.tagline{font-size:1.3rem;color:#6366f1;font-weight:500;margin-bottom:1.5rem}.brand{color:#6366f1;font-weight:800;font-size:2.5rem;letter-spacing:1px}.desc{font-size:1.1rem;color:#374151;margin-bottom:2.5rem;margin-top:1rem}.get-started-btn{background:#6366f1;color:#fff;border:none;padding:1rem 2.5rem;border-radius:8px;font-size:1.2rem;font-weight:600;cursor:pointer;margin-bottom:2.5rem;margin-top:1rem;display:flex;align-items:center;gap:.7rem;box-shadow:0 2px 12px #6366f114;transition:background .2s,transform .2s}.get-started-btn:hover{background:#4f46e5;transform:translateY(-2px) scale(1.03)}.google-icon{width:22px;height:22px;vertical-align:middle}.hero-img img{max-width:400px;width:100%;margin-top:2rem;border-radius:12px;box-shadow:0 8px 32px #6366f114}.landing-footer{text-align:center;color:#6366f1;font-size:1rem;padding:1.5rem 0 .5rem;background:transparent}@media (max-width: 700px){.main-card{padding:2rem .5rem}.landing-header{flex-direction:column;gap:1rem;padding:1.2rem 1rem .5rem}}.desc,.tagline,.get-started-btn,.signin-btn,.landing-footer{font-family:Inter,Roboto,Arial,sans-serif}.crackedly-header{width:100vw;min-width:0;max-width:100vw;display:flex;justify-content:space-between;align-items:center;padding:.4rem 1.5rem;background:transparent;box-shadow:none;border-bottom:none;position:relative;z-index:10;height:3.5rem}.crackedly-logo-row{display:flex;align-items:flex-end;gap:.7rem;padding-top:.3rem}.crackedly-logo-img{max-height:15rem;max-width:15rem;width:auto;height:auto;object-fit:contain;vertical-align:middle;margin-top:.5rem}.crackedly-logo-text{font-family:Poppins,Inter,Arial,sans-serif;font-size:2rem;font-weight:800;color:#6366f1;letter-spacing:1px}.crackedly-signin-row .signin-btn{background:#fff;color:#6366f1;border:1.5px solid #6366f1;padding:.6rem 1.5rem;border-radius:6px;font-size:1rem;font-weight:500;cursor:pointer;display:flex;align-items:center;gap:.5rem;transition:background .2s,color .2s,border .2s;box-shadow:0 2px 12px #6366f114}.crackedly-signin-row .signin-btn:hover{background:#6366f1;color:#fff;border:1.5px solid #6366f1}.user-info{display:flex;align-items:center;gap:.5rem}.user-avatar{width:2.2rem;height:2.2rem;border-radius:50%;cursor:pointer;border:2px solid #6366f1;object-fit:cover;transition:box-shadow .2s}.user-avatar:hover{box-shadow:0 0 0 3px #6366f1}.form-container{max-width:700px;width:100%;margin:2rem auto;background:#fff;border-radius:15px;box-shadow:0 20px 40px #0000001a}.crackedly-logo-row:hover .crackedly-logo-text{text-decoration:underline}.user-menu{position:absolute;right:0;background:#fff;border:1px solid #ddd;border-radius:6px;box-shadow:0 2px 8px #0000001a;margin-top:8px;z-index:100;min-width:140px;display:flex;flex-direction:column}.user-menu button{background:none;border:none;padding:10px 16px;text-align:left;cursor:pointer;font-size:1rem}.user-menu button:hover{background:#f5f5f5}.form-columns{display:flex;gap:2rem;width:100%;flex-wrap:wrap}.form-col{flex:1 1 0;min-width:320px;max-width:60%;display:flex;flex-direction:column;gap:1.5rem}@media (max-width: 900px){.form-columns{flex-direction:column;gap:1.5rem}.form-col{max-width:100%}}.form-container{width:100%;max-width:1200px;background:#fff;border-radius:15px;padding:40px 30px;box-shadow:0 20px 40px #0000001a}.form-section{margin-bottom:30px}.form-section h2{color:#4a5568;margin-bottom:20px;font-size:1.5rem;border-bottom:2px solid #e2e8f0;padding-bottom:10px}.form-group{margin-bottom:20px}label{display:block;margin-bottom:8px;font-weight:600;color:#2d3748}input,textarea{width:100%;padding:12px 16px;border:2px solid #e2e8f0;border-radius:8px;font-size:16px;transition:border-color .3s ease,box-shadow .3s ease}input:focus,textarea:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}textarea{resize:vertical;min-height:120px}.form-actions{text-align:center;margin-top:30px}.btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;padding:15px 40px;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease;min-width:200px}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 10px 20px #667eea4d}.form-row{display:flex;gap:1rem;width:100%}.form-row .form-group{flex:1 1 0}@media (max-width: 700px){.form-row{flex-direction:column;gap:0}}.file-upload-container{margin-top:8px}.file-drop-zone{border:2px dashed #e2e8f0;border-radius:8px;padding:40px 20px;text-align:center;cursor:pointer;transition:all .3s ease;background-color:#f7fafc}.file-drop-zone.drag-active{border-color:#667eea;background-color:#ebf4ff}.file-drop-zone p{margin:0;color:#4a5568;font-size:1rem}.file-drop-zone span{font-weight:600;color:#667eea}.file-upload-input{display:none}.file-preview{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border:2px solid #e2e8f0;border-radius:8px;background-color:#f7fafc;margin-top:1rem}.file-preview p{margin:0;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.remove-file-btn{background:none;border:none;color:#ef4444;font-weight:700;font-size:1.2rem;cursor:pointer;padding:0 4px}.extract-btn{padding:12px 24px;min-width:auto;flex-shrink:0}.extract-warning-container{position:relative}.extract-warning{position:absolute;top:0;right:0;z-index:1000;background:#fffbe6;border:1px solid #ffe58f;color:#ad6800;padding:12px 18px;border-radius:8px;margin-bottom:16px;font-size:1rem;box-shadow:0 2px 8px #ffd70014;max-width:350px;min-width:220px;pointer-events:none}.input-wrapper{position:relative;width:100%}.input-spinner{position:absolute;right:16px;top:50%;transform:translateY(-50%);pointer-events:none;z-index:2}
