body{margin:0;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}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.App{text-align:center}.App-logo{height:40vmin;pointer-events:none}@media (prefers-reduced-motion: no-preference){.App-logo{animation:App-logo-spin infinite 20s linear}}.App-header{background-color:#282c34;min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:calc(10px + 2vmin);color:#fff}.App-link{color:#fb9c61}@keyframes App-logo-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:root{--color-primary: #2b1d17;--color-secondary: #6d4c41;--color-accent: #d7ccc8;--color-text: #4e342e;--color-bg: #fafafa;--shadow-sm: 0 2px 4px rgba(0,0,0,.1);--shadow-md: 0 4px 6px rgba(0,0,0,.1);--shadow-lg: 0 10px 15px rgba(0,0,0,.1);--transition: all .3s ease;--navbar-height: 70px;--error-color: #d32f2f;--success-color: #388e3c;--warning-color: #f57c00;--text-secondary: #8d6e63;--border-color: #d7ccc8;--hover-primary: #1a1009;--hover-secondary: #5d4037}*{box-sizing:border-box}body{background:linear-gradient(135deg,var(--color-secondary) 0%,var(--color-primary) 100%);color:var(--color-text);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,sans-serif;margin:0;padding:0;min-height:100vh;overflow-x:hidden}.admin-container{min-height:100vh;width:100vw;padding:1.5rem;background:linear-gradient(135deg,var(--color-secondary) 0%,var(--color-primary) 100%);background-attachment:fixed}.admin-header{position:sticky;top:1.5rem;z-index:100;display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;background:#fafafaf2;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);border-radius:20px;padding:1.25rem 2rem;box-shadow:var(--shadow-lg);border:1px solid var(--color-accent)}.admin-title{font-size:2rem;font-weight:800;background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-secondary) 100%);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;margin:0}.admin-actions{display:flex;gap:1rem}.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;border-radius:12px;font-size:.875rem;font-weight:600;cursor:pointer;transition:var(--transition);border:none;position:relative;overflow:hidden;white-space:nowrap}.btn:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .5s}.btn:hover:before{left:100%}.btn-primary{background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-secondary) 100%);color:#fff;box-shadow:0 4px 15px #2b1d1766}.btn-primary:hover{background:linear-gradient(135deg,var(--hover-primary) 0%,var(--hover-secondary) 100%);transform:translateY(-2px);box-shadow:0 8px 25px #2b1d1799}.btn-logout{background:linear-gradient(135deg,var(--error-color) 0%,#c62828 100%);color:#fff;box-shadow:0 4px 15px #d32f2f66}.btn-logout:hover{transform:translateY(-2px);box-shadow:0 8px 25px #d32f2f99}.btn-cancel{background:#fafafae6;color:var(--text-secondary);border:1px solid var(--border-color)}.btn-cancel:hover{background:#fafafa;transform:translateY(-1px)}.btn-edit{background:linear-gradient(135deg,var(--warning-color) 0%,#ef6c00 100%);color:#fff;padding:.6rem;border-radius:10px;box-shadow:0 2px 8px #f57c004d;min-width:40px;min-height:40px}.btn-edit:hover{transform:translateY(-2px);box-shadow:0 4px 15px #f57c0080}.btn-delete{background:linear-gradient(135deg,var(--error-color) 0%,#c62828 100%);color:#fff;padding:.6rem;border-radius:10px;box-shadow:0 2px 8px #d32f2f4d;min-width:40px;min-height:40px}.btn-delete:hover{transform:translateY(-2px);box-shadow:0 4px 15px #d32f2f80}.card{background:#fafafaf2;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);border-radius:20px;padding:0;box-shadow:var(--shadow-lg);border:1px solid var(--color-accent);width:100%;margin:0}.card-header{padding:2rem 2rem 1rem;border-bottom:2px solid var(--border-color)}.card-title{font-size:1.75rem;font-weight:700;background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-secondary) 100%);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;margin:0}.card-content{padding:2rem;background-color:transparent;border-radius:0;box-shadow:none}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.5rem;margin-top:0;padding:0}.project-card{background:#fff;border-radius:16px;overflow:hidden;transition:all .4s cubic-bezier(.4,0,.2,1);box-shadow:var(--shadow-md);border:1px solid var(--color-accent);position:relative;display:flex;flex-direction:column;height:fit-content}.project-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-secondary) 100%)}.project-card:hover{transform:translateY(-8px) scale(1.02);box-shadow:var(--shadow-lg)}.project-image{height:200px;overflow:hidden;position:relative;background:linear-gradient(135deg,var(--color-accent) 0%,#efebe9 100%)}.project-image img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease}.project-card:hover .project-image img{transform:scale(1.1)}.no-image{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--color-accent) 0%,#efebe9 100%);color:var(--text-secondary);font-size:1rem;font-weight:500;flex-direction:column;gap:.5rem}.project-info{padding:1.5rem;flex-grow:1;display:flex;flex-direction:column}.project-info h3{margin:0 0 .75rem;font-size:1.25rem;font-weight:700;color:var(--color-text);line-height:1.3;display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden}.project-category{display:inline-block;background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-secondary) 100%);color:#fff;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;padding:.35rem .75rem;border-radius:12px;margin-bottom:1rem;width:fit-content}.project-description{font-size:.875rem;margin:0;color:var(--text-secondary);line-height:1.6;flex-grow:1;display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden}.project-actions{display:flex;justify-content:flex-end;padding:1rem 1.5rem;gap:.75rem;border-top:1px solid var(--border-color);background:#d7ccc84d;margin-top:auto}.empty-state{text-align:center;padding:4rem 2rem;color:var(--text-secondary)}.empty-state-icon{width:4rem;height:4rem;margin:0 auto 1.5rem;opacity:.5}.empty-state h3{font-size:1.5rem;font-weight:600;margin-bottom:.5rem;color:var(--color-text)}.empty-state p{font-size:1rem;margin-bottom:2rem}.form-group{margin-bottom:1.5rem}.label{display:block;font-size:.875rem;font-weight:600;margin-bottom:.5rem;color:var(--color-text);letter-spacing:.02em}.two-columns{display:grid;grid-template-columns:1fr 1fr;gap:2rem;margin-bottom:1.5rem}.input,.textarea,select{width:100%;padding:.75rem;border:2px solid var(--border-color);border-radius:12px;background-color:#fff;color:var(--color-text);font-size:.95rem;transition:var(--transition);box-shadow:var(--shadow-sm)}.input:focus,.textarea:focus,select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #2b1d1733;transform:translateY(-1px)}.textarea{resize:vertical;min-height:120px}.feature-input{display:flex;gap:.75rem;margin-bottom:.75rem}.btn-add{background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-secondary) 100%);color:#fff;height:42px;width:42px;display:flex;align-items:center;justify-content:center;padding:0;border-radius:12px;box-shadow:0 4px 15px #2b1d1766;flex-shrink:0}.btn-add:hover{background:linear-gradient(135deg,var(--hover-primary) 0%,var(--hover-secondary) 100%);transform:translateY(-2px);box-shadow:0 8px 25px #2b1d1799}.btn-save{background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-secondary) 100%);color:#fff;width:100%;margin-top:2rem;display:flex;align-items:center;justify-content:center;gap:.75rem;padding:1rem;font-size:1.05rem;letter-spacing:.03em;box-shadow:0 4px 15px #2b1d1766}.btn-save:hover{background:linear-gradient(135deg,var(--hover-primary) 0%,var(--hover-secondary) 100%);transform:translateY(-2px);box-shadow:0 8px 25px #2b1d1799}.image-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1.5rem;margin-top:1rem}.image-preview{position:relative;border-radius:12px;overflow:hidden;box-shadow:var(--shadow-md);transition:transform .3s ease;aspect-ratio:1;border:1px solid var(--color-accent)}.image-preview:hover{transform:translateY(-5px)}.image-preview img{width:100%;height:100%;object-fit:cover}.remove-btn{position:absolute;top:8px;right:8px;background-color:var(--error-color);color:#fff;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border:none;border-radius:50%;cursor:pointer;opacity:.9;transition:var(--transition);box-shadow:0 2px 8px #0003}.remove-btn:hover{opacity:1;transform:scale(1.1)}.upload-box{display:flex;flex-direction:column;align-items:center;justify-content:center;aspect-ratio:1;border:2px dashed var(--color-accent);border-radius:12px;background:linear-gradient(135deg,var(--color-bg) 0%,#f5f5f5 100%);cursor:pointer;text-align:center;transition:var(--transition)}.upload-box:hover{border-color:var(--color-primary);background:linear-gradient(135deg,var(--color-accent) 0%,#efebe9 100%);transform:translateY(-2px)}.icon{width:2.5rem;height:2.5rem;margin-bottom:1rem;color:var(--color-primary);transition:var(--transition)}.upload-box:hover .icon{transform:translateY(-3px)}.icon-small{width:1.2rem;height:1.2rem}.upload-text{font-size:.95rem;color:var(--text-secondary);font-weight:500}.hidden{display:none}.form-actions{display:flex;justify-content:flex-end;gap:1rem;margin-top:2rem;padding-top:2rem;border-top:2px solid var(--border-color)}.mt-2{margin-top:1rem}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInScale{0%{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.project-card{animation:slideInScale .6s ease-out forwards}.project-card:nth-child(3n+1){animation-delay:.1s}.project-card:nth-child(3n+2){animation-delay:.2s}.project-card:nth-child(3n+3){animation-delay:.3s}@media (max-width: 768px){.admin-container{padding:1rem}.admin-header{flex-direction:row;flex-wrap:wrap;gap:1rem;padding:1.5rem;top:.5rem}.admin-title{font-size:1.6rem;flex:1 1 100%;text-align:center;margin-bottom:.5rem}.admin-actions{flex:1;justify-content:center}.projects-grid{grid-template-columns:repeat(2,1fr);gap:1.25rem}.project-card{overflow:visible}.project-info{padding:1.25rem 1rem}.project-actions{padding:.75rem;flex-wrap:wrap}.btn-edit,.btn-delete{padding:.5rem;min-width:36px;min-height:36px;flex:1}.project-info h3{font-size:1.15rem;-webkit-line-clamp:2;margin-bottom:.5rem}.project-description{font-size:.85rem;-webkit-line-clamp:3}.project-category{margin-bottom:.75rem}@media (max-width: 600px){.projects-grid{grid-template-columns:repeat(2,1fr);gap:1rem}.project-image{height:150px}.btn-edit,.btn-delete{min-width:40px;min-height:40px}.project-actions{gap:.5rem}}@media (max-width: 480px){.project-card{border-radius:14px;box-shadow:var(--shadow-md)}.project-info{padding:1.1rem .9rem}.project-image{height:140px}.project-actions{padding:.75rem;background:#d7ccc833;gap:.4rem}.btn-edit,.btn-delete{flex:none;width:calc(50% - .2rem);padding:.5rem;min-width:auto;min-height:auto;font-size:0;position:relative}.btn-edit:after,.btn-delete:after{content:"";display:inline-block;width:24px;height:24px;background-size:contain;background-repeat:no-repeat}.btn-edit:after{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='white'%3E%3Cpath d='M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04c.39-.39.39-1.02 0-1.41l-2.34-2.34c-.39-.39-1.02-.39-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z'/%3E%3C/svg%3E")}.btn-delete:after{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='white'%3E%3Cpath d='M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z'/%3E%3C/svg%3E")}.project-info h3{font-size:1.1rem}.project-description{font-size:.8rem}}@media (max-width: 360px){.projects-grid{grid-template-columns:1fr}.project-image{height:160px}.btn-edit,.btn-delete{width:48%;padding:.6rem}}}:root{--primary-color: #3b82f6;--primary-hover: #2563eb;--text-color: #1f2937;--light-text: #6b7280;--border-color: #d1d5db;--error-bg: #fee2e2;--error-text: #b91c1c;--shadow: 0 10px 30px rgba(0, 0, 0, .1);--transition: all .3s cubic-bezier(.175, .885, .32, 1.275)}*{margin:0;padding:0;box-sizing:border-box;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif}body{background:linear-gradient(135deg,#e0f7fa,#e0f2f1);min-height:100vh;display:flex;justify-content:center;align-items:center;padding:1rem}.login-container{display:flex;justify-content:center;align-items:center;width:100%;max-width:1200px;padding:2rem}.login-card{background-color:#fff;padding:5rem;border-radius:1.25rem;box-shadow:var(--shadow);width:100%;max-width:500px;animation:fadeIn .5s ease-in-out;position:relative;overflow:hidden}.login-card:before{content:"";position:absolute;top:0;left:0;width:100%;height:5px;background:linear-gradient(90deg,var(--primary-color),#60a5fa)}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.login-title{text-align:center;font-size:1.8rem;font-weight:700;color:var(--text-color);margin-bottom:2rem;position:relative}.login-title:after{content:"";position:absolute;bottom:-10px;left:50%;transform:translate(-50%);width:60px;height:4px;background:linear-gradient(90deg,var(--primary-color),#60a5fa);border-radius:2px}.login-form{display:flex;flex-direction:column;gap:1.5rem}.form-group{display:flex;flex-direction:column;gap:.6rem;position:relative}.label{font-size:.95rem;color:var(--text-color);font-weight:500;margin-left:.25rem}.input{padding:.85rem 1rem;width:100%;border:1px solid var(--border-color);border-radius:.7rem;font-size:1rem;transition:var(--transition);background-color:#fafafa}.input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #3b82f633;background-color:#fff}.input-icon{position:absolute;right:1rem;top:2.25rem;color:var(--light-text);font-size:1.1rem}.btn-login{padding:.9rem;background:linear-gradient(135deg,var(--primary-color),#1d4ed8);color:#fff;font-size:1.05rem;font-weight:600;border:none;border-radius:.7rem;cursor:pointer;transition:var(--transition);margin-top:.5rem;letter-spacing:.5px;box-shadow:0 4px 10px #3b82f64d}.btn-login:hover{background:linear-gradient(135deg,var(--primary-hover),#1e40af);transform:translateY(-2px);box-shadow:0 6px 15px #3b82f666}.error-message{background-color:var(--error-bg);color:var(--error-text);padding:.85rem;border-radius:.7rem;font-size:.9rem;text-align:center;border:1px solid #fecaca;margin-bottom:.5rem}.form-footer{text-align:center;margin-top:1.5rem;font-size:.9rem;color:var(--light-text)}.form-footer a{color:var(--primary-color);text-decoration:none;font-weight:600;transition:all .2s;position:relative}.form-footer a:after{content:"";position:absolute;bottom:-2px;left:0;width:0;height:2px;background:var(--primary-color);transition:width .3s}.form-footer a:hover{text-decoration:none}.form-footer a:hover:after{width:100%}@media (max-width: 480px){.login-card{padding:1.8rem;border-radius:1rem}.login-title{font-size:1.6rem}.login-form{gap:1.2rem}.input{padding:.75rem}.btn-login{padding:.8rem}}
