*,*:before,*:after{box-sizing:border-box}:root{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.5;font-weight:400;color-scheme:light;color:#111827;background-color:#f9fafb;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;min-width:320px;min-height:100vh}#root{width:100%}a{font-weight:500;color:#6366f1;text-decoration:none}a:hover{color:#818cf8}h1,h2,h3,h4,h5,h6{line-height:1.2}button,input{font-family:inherit}::selection{background:#6366f1;color:#fff}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#f1f1f1}::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#a8a8a8}.project-form{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:24px;max-width:500px;margin:0 auto}.project-form h2{margin:0 0 24px;color:#111827;font-size:1.5rem}.form-group{margin-bottom:20px}.form-group label{display:block;margin-bottom:8px;color:#4b5563;font-size:.875rem}.form-group input{width:100%;padding:12px 16px;background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;color:#111827;font-size:1rem;transition:border-color .2s}.form-group input:focus{outline:none;border-color:#6366f1}.form-group input::placeholder{color:#9ca3af}.icon-preview{display:flex;justify-content:center;margin-bottom:20px}.icon-preview img{width:64px;height:64px;object-fit:contain;border-radius:8px;background:#f3f4f6;border:1px solid #e5e7eb;padding:8px}.form-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:24px}.btn-primary,.btn-secondary{padding:12px 24px;border-radius:8px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s}.btn-primary{background:#6366f1;color:#fff;border:none}.btn-primary:hover{background:#5558e3}.btn-secondary{background:transparent;color:#4b5563;border:1px solid #e5e7eb}.btn-secondary:hover{border-color:#d1d5db;color:#111827}.qr-code-display{display:flex;flex-direction:column;align-items:center;gap:16px}.qr-code-wrapper{background:#fff;border-radius:12px;padding:8px;box-shadow:0 4px 20px #0000001a}.qr-details{text-align:center}.qr-value{color:#6366f1;font-family:monospace;font-size:.875rem;word-break:break-all;margin:0 0 12px;padding:8px 12px;background:#f3f4f6;border-radius:6px}.btn-download{padding:10px 20px;background:#10b981;color:#fff;border:none;border-radius:8px;font-size:.875rem;font-weight:500;cursor:pointer;transition:background .2s}.btn-download:hover{background:#059669}.project-card{background:#fff;border:1px solid #e5e7eb;border-radius:16px;overflow:hidden;display:flex;flex-direction:column;transition:transform .2s,box-shadow .2s}.project-card:hover{transform:translateY(-4px);box-shadow:0 10px 25px -5px #0000001a,0 8px 10px -6px #0000001a}.card-background{position:relative;min-height:120px;background-color:#f3f4f6;background-size:cover;background-position:center;background-repeat:no-repeat;display:flex;align-items:flex-end}.card-background-overlay{position:absolute;inset:0;background:linear-gradient(to bottom,#fff0,#ffffff80 60%,#fffffff2)}.card-header{position:relative;z-index:1;padding:16px 20px;width:100%}.card-header h3{margin:0 0 4px;color:#111827;font-size:1.25rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-shadow:0 1px 2px rgba(255,255,255,.8)}.project-url{color:#4f46e5;font-size:.875rem;text-decoration:none;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-shadow:0 1px 2px rgba(255,255,255,.8)}.project-url:hover{text-decoration:underline;color:#4338ca}.card-qr-section{display:flex;justify-content:center;padding:20px;background:#f9fafb}.card-actions{display:flex;gap:12px;padding:0 20px 20px}.btn-edit,.btn-delete{flex:1;padding:10px 16px;border-radius:8px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s}.btn-edit{background:transparent;color:#6366f1;border:1px solid #6366f1}.btn-edit:hover{background:#6366f1;color:#fff}.btn-delete{background:transparent;color:#ef4444;border:1px solid #ef4444}.btn-delete:hover,.btn-delete.confirm{background:#ef4444;color:#fff}.gallery{width:100%}.gallery-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.gallery-header h2{margin:0;color:#111827;font-size:1.5rem}.project-count{color:#6a6a8a;font-size:.875rem}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:24px}.gallery-empty{text-align:center;padding:60px 20px}.empty-icon{font-size:4rem;margin-bottom:24px}.gallery-empty h2{color:#111827;margin:0 0 12px;font-size:1.5rem}.gallery-empty p{color:#6a6a8a;margin:0 0 32px}.btn-create{padding:14px 32px;background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;border:none;border-radius:10px;font-size:1rem;font-weight:500;cursor:pointer;transition:transform .2s,box-shadow .2s}.btn-create:hover{transform:translateY(-2px);box-shadow:0 4px 20px #6366f166}.auth-container{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;background:#f9fafb}.auth-card{background:#fff;border-radius:16px;padding:40px;width:100%;max-width:400px;box-shadow:0 20px 60px #0000004d}.auth-header{text-align:center;margin-bottom:32px}.auth-header .logo{width:60px;height:60px;background:linear-gradient(135deg,#6366f1,#8b5cf6);border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:28px;font-weight:700;color:#fff;margin:0 auto 16px}.auth-header h1{font-size:24px;color:#1a1a2e;margin:0 0 8px}.auth-header p{color:#64748b;margin:0;font-size:14px}.auth-form{display:flex;flex-direction:column;gap:20px}.auth-form .form-group{display:flex;flex-direction:column;gap:6px}.auth-form label{font-size:14px;font-weight:500;color:#374151}.auth-form input{padding:12px 16px;border:1px solid #e5e7eb;border-radius:8px;font-size:16px;transition:border-color .2s,box-shadow .2s}.auth-form input:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 3px #6366f11a}.auth-error{background:#fef2f2;color:#dc2626;padding:12px;border-radius:8px;font-size:14px;text-align:center}.auth-message{background:#f0fdf4;color:#16a34a;padding:12px;border-radius:8px;font-size:14px;text-align:center}.auth-submit{background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;border:none;padding:14px;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:transform .2s,box-shadow .2s}.auth-submit:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #6366f166}.auth-submit:disabled{opacity:.7;cursor:not-allowed}.auth-footer{margin-top:24px;text-align:center}.auth-footer p{color:#64748b;font-size:14px;margin:0}.auth-toggle{background:none;border:none;color:#6366f1;font-weight:600;cursor:pointer;padding:0;font-size:14px}.auth-toggle:hover{text-decoration:underline}.app{min-height:100vh;display:flex;flex-direction:column}.app-header{display:flex;align-items:center;justify-content:space-between;padding:30px 40px;background:#fff;border-bottom:1px solid #e5e7eb}.logo-section{display:flex;align-items:center;gap:16px;cursor:pointer}.logo{height:80px;width:auto}.app-header h1{margin:0;font-size:1.5rem;color:#111827;font-weight:600}.btn-header-create{padding:12px 24px;background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;border:none;border-radius:10px;font-size:.9375rem;font-weight:500;cursor:pointer;transition:transform .2s,box-shadow .2s}.btn-header-create:hover{transform:translateY(-2px);box-shadow:0 4px 20px #6366f166}.header-actions{display:flex;align-items:center;gap:12px}.btn-sign-out{padding:10px 20px;background:transparent;color:#4b5563;border:1px solid #e5e7eb;border-radius:8px;font-size:.875rem;cursor:pointer;transition:background-color .2s,color .2s,border-color .2s}.btn-sign-out:hover{background:#f3f4f6;color:#111827;border-color:#d1d5db}.app-loading,.projects-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;gap:16px;color:#9ca3af}.projects-loading{min-height:300px}.loading-spinner{width:40px;height:40px;border:3px solid #e5e7eb;border-top-color:#6366f1;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.app-main{flex:1;padding:40px;max-width:1400px;margin:0 auto;width:100%;box-sizing:border-box}.app-footer{padding:24px 40px;text-align:center;border-top:1px solid #2a2a4a}.app-footer p{margin:0;color:#4a4a6a;font-size:.875rem}@media(max-width:768px){.app-header{padding:16px 20px;flex-wrap:wrap;gap:16px}.app-header h1{font-size:1.25rem}.app-main{padding:20px}.btn-header-create{width:100%;text-align:center}}
