.app{min-height:100vh;padding:2rem 1rem}.container{max-width:800px;margin:0 auto}.header{text-align:center;color:#fff;margin-bottom:3rem}.header h1{font-size:2.5rem;margin-bottom:.5rem;font-weight:700}.header p{font-size:1.2rem;opacity:.9}.error-message{background:#fff;padding:2rem;border-radius:12px;box-shadow:0 10px 40px #0000001a;text-align:center;margin-top:2rem}.error-message p{color:#e74c3c;margin-bottom:1rem;font-size:1.1rem}.error-message button{background:#667eea;color:#fff;border:none;padding:.75rem 2rem;border-radius:8px;font-size:1rem;cursor:pointer;transition:background .3s}.error-message button:hover{background:#5568d3}.form-container{background:#fff;padding:2.5rem;border-radius:16px;box-shadow:0 20px 60px #0003}.portfolio-form{display:flex;flex-direction:column;gap:2rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-label{font-size:1.1rem;font-weight:600;color:#333}.file-input{padding:1rem;border:2px dashed #667eea;border-radius:8px;background:#f8f9ff;cursor:pointer;font-size:1rem;transition:all .3s}.file-input:hover{background:#f0f2ff;border-color:#5568d3}.file-name{color:#667eea;font-weight:500;margin-top:.5rem}.text-input{padding:1rem;border:2px solid #e0e0e0;border-radius:8px;font-size:1rem;transition:border-color .3s}.text-input:focus{outline:none;border-color:#667eea}.help-text{font-size:.9rem;color:#666;margin-top:.25rem}.error-text{color:#e74c3c;font-size:.9rem;margin-top:.25rem}.submit-button{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;padding:1.25rem 2rem;border-radius:8px;font-size:1.1rem;font-weight:600;cursor:pointer;transition:transform .2s,box-shadow .2s;margin-top:1rem}.submit-button:hover{transform:translateY(-2px);box-shadow:0 10px 25px #667eea66}.submit-button:active{transform:translateY(0)}.loading-container{background:#fff;padding:3rem;border-radius:16px;box-shadow:0 20px 60px #0003;text-align:center}.loading-spinner{width:60px;height:60px;border:4px solid #f3f3f3;border-top:4px solid #667eea;border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 2rem}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading-container h2{color:#333;margin-bottom:.5rem;font-size:1.8rem}.loading-container p{color:#666;font-size:1rem}.result-container{background:#fff;padding:3rem;border-radius:16px;box-shadow:0 20px 60px #0003}.result-content{text-align:center}.result-content h2{color:#333;font-size:2rem;margin-bottom:1rem}.result-content>p{color:#666;font-size:1.1rem;margin-bottom:2rem}.url-box{display:flex;gap:1rem;margin-bottom:2rem;align-items:center}.url-input{flex:1;padding:1rem;border:2px solid #e0e0e0;border-radius:8px;font-size:1rem;background:#f8f9fa}.copy-button{padding:1rem 2rem;background:#667eea;color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:background .3s;white-space:nowrap}.copy-button:hover{background:#5568d3}.action-buttons{display:flex;gap:1rem;justify-content:center;margin-bottom:2rem;flex-wrap:wrap}.view-button,.download-button{padding:1rem 2rem;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:transform .2s,box-shadow .2s;text-decoration:none;display:inline-block}.view-button{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.view-button:hover{transform:translateY(-2px);box-shadow:0 10px 25px #667eea66}.download-button{background:#28a745;color:#fff}.download-button:hover{transform:translateY(-2px);box-shadow:0 10px 25px #28a74566;background:#218838}.new-portfolio-button{padding:.75rem 2rem;background:transparent;color:#667eea;border:2px solid #667eea;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s}.new-portfolio-button:hover{background:#667eea;color:#fff}@media (max-width: 600px){.url-box{flex-direction:column}.url-input,.copy-button{width:100%}.action-buttons{flex-direction:column}.view-button,.download-button{width:100%}}*{margin:0;padding:0;box-sizing:border-box}body{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;background:linear-gradient(135deg,#667eea,#764ba2);min-height:100vh}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}#root{min-height:100vh}
