:root{--primary-color: #2563eb;--primary-dark: #1e40af;--primary-light: #3b82f6;--secondary-color: #10b981;--secondary-dark: #059669;--secondary-light: #34d399;--gray-50: #f9fafb;--gray-100: #f3f4f6;--gray-200: #e5e7eb;--gray-300: #d1d5db;--gray-400: #9ca3af;--gray-500: #6b7280;--gray-600: #4b5563;--gray-700: #374151;--gray-800: #1f2937;--gray-900: #111827;--success: #10b981;--danger: #ef4444;--warning: #f59e0b;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.6;font-weight:400;font-size:16px;color:var(--gray-900);background-color:var(--gray-50);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{margin:0;padding:0;box-sizing:border-box}a{font-weight:500;color:var(--primary-color);text-decoration:none;transition:color .2s ease}a:hover{color:var(--primary-dark)}body{margin:0;min-width:320px;min-height:100vh;background:linear-gradient(135deg,#f5f7fa,#c3cfe2)}h1{font-size:2.5em;line-height:1.2;font-weight:800;color:var(--gray-900);letter-spacing:-.02em}h2{font-size:1.875em;line-height:1.2;font-weight:700;color:var(--gray-800);margin:1.5em 0 .75em}button{border-radius:8px;border:none;padding:.75em 1.5em;font-size:.95em;font-weight:600;font-family:inherit;background-color:var(--primary-color);color:#fff;cursor:pointer;transition:all .3s ease;box-shadow:0 2px 8px #2563eb26}button:hover{background-color:var(--primary-dark);box-shadow:0 4px 12px #2563eb4d;transform:translateY(-1px)}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}button:disabled{background-color:var(--gray-300);cursor:not-allowed;box-shadow:none;transform:none}input[type=file]{padding:.75em;border:2px solid var(--gray-300);border-radius:8px;font-family:inherit;cursor:pointer;transition:all .3s ease}input[type=file]:hover{border-color:var(--primary-color);background-color:var(--gray-50)}input[type=file]:disabled{background-color:var(--gray-100);cursor:not-allowed;border-color:var(--gray-200)}p{color:var(--gray-600)}table{width:100%;border-collapse:collapse;background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 1px 3px #0000001a}table thead{background-color:var(--gray-100);border-bottom:2px solid var(--gray-200)}table th{padding:1em;text-align:left;font-weight:600;color:var(--gray-700);font-size:.95em}table td{padding:1em;border-bottom:1px solid var(--gray-100);color:var(--gray-600)}table tbody tr:hover{background-color:var(--gray-50)}@media(max-width:768px){h1{font-size:1.875em}h2{font-size:1.5em}}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}#root{max-width:1400px;margin:0 auto;padding:2rem 1.5rem;min-height:100vh}.App{background:#fff;border-radius:12px;box-shadow:0 10px 40px #00000014;padding:3rem;animation:slideUp .4s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.App h1{background:linear-gradient(135deg,#2563eb,#10b981);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:2rem;text-align:center}.navigation{display:flex;gap:2rem;flex-wrap:wrap;margin-bottom:2rem;padding-bottom:2rem;border-bottom:2px solid #e5e7eb;justify-content:center}.nav-group{display:flex;flex-direction:column;gap:.5rem;align-items:center}.nav-group h3{margin:0 0 .5rem;color:#6b7280;font-size:.85em;text-transform:uppercase;letter-spacing:.05em;font-weight:600}.nav-button{padding:.85em 2em;border-radius:8px;border:2px solid #e5e7eb;background:#fff;color:#4b5563;font-weight:600;cursor:pointer;transition:all .3s ease;font-size:.95em;box-shadow:0 2px 4px #0000000d}.nav-button:hover{border-color:#2563eb;color:#2563eb;box-shadow:0 4px 12px #2563eb1a}.nav-button.active-photo{background:linear-gradient(135deg,#2563eb,#1e40af);color:#fff;border-color:#1e40af;box-shadow:0 4px 12px #2563eb4d}.nav-button.active-video{background:linear-gradient(135deg,#10b981,#059669);color:#fff;border-color:#059669;box-shadow:0 4px 12px #10b9814d}.upload-section{background:linear-gradient(135deg,#f9fafb,#f3f4f6);padding:3rem;border-radius:12px;border:2px dashed #d1d5db;text-align:center;transition:all .3s ease}.upload-section:hover{border-color:#2563eb;background:linear-gradient(135deg,#eef2ff,#f0fdf4)}.upload-section h2,.capture-section h2{color:#1f2937;margin-top:0;margin-bottom:1.5rem;font-size:1.5em}.capture-section{background:linear-gradient(135deg,#f9fafb,#f3f4f6);padding:3rem;border-radius:12px;border:2px dashed #d1d5db;text-align:center;transition:all .3s ease}.capture-section:hover{border-color:#2563eb;background:linear-gradient(135deg,#eef2ff,#f0fdf4)}.camera-container{margin:2rem 0;display:flex;flex-direction:column;align-items:center;gap:1.5rem;width:100%;max-width:500px;margin-left:auto;margin-right:auto}.camera-container video{display:block;width:100%;height:auto;object-fit:cover;border:2px solid #e5e7eb;box-shadow:0 4px 16px #0000001a}.camera-controls,.capture-controls{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}.capture-button{padding:.9em 2.5em;font-size:1em;border-radius:8px;border:2px solid #e5e7eb;background:#fff;color:#4b5563;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 2px 4px #0000000d}.capture-button:hover:not(:disabled){border-color:#2563eb;color:#2563eb;box-shadow:0 4px 12px #2563eb1a}.capture-button.primary{background:linear-gradient(135deg,#2563eb,#1e40af);color:#fff;border-color:#1e40af;box-shadow:0 4px 12px #2563eb40}.capture-button.primary:hover:not(:disabled){box-shadow:0 6px 16px #2563eb59;transform:translateY(-2px)}.capture-button.secondary{background:#fff;color:#6b7280;border-color:#d1d5db}.capture-button.secondary:hover:not(:disabled){border-color:#f87171;color:#f87171;background:#fee2e2}.capture-button.danger{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;border-color:#dc2626;box-shadow:0 4px 12px #ef444440}.capture-button.danger:hover:not(:disabled){box-shadow:0 6px 16px #ef444459;transform:translateY(-2px)}.capture-button:disabled{opacity:.6;cursor:not-allowed}.recording-info{display:flex;align-items:center;justify-content:center;gap:1rem;margin:.5rem 0}.recording-indicator{display:flex;align-items:center;gap:.75rem;background:#fee2e2;color:#ef4444;padding:.75rem 1.5rem;border-radius:8px;font-weight:600;font-size:.95em;animation:pulse 1s infinite}.recording-dot{width:12px;height:12px;background:#ef4444;border-radius:50%;animation:blink 1s infinite}@keyframes blink{0%,49%{opacity:1}50%,to{opacity:.3}}@keyframes pulse{0%{box-shadow:0 0 #ef444466}70%{box-shadow:0 0 0 8px #ef444400}to{box-shadow:0 0 #ef444400}}.upload-section input[type=file]{display:inline-block;margin-bottom:1.5rem;width:100%;max-width:400px}.upload-section button{padding:.9em 2.5em;font-size:1em;margin-right:.5rem}.file-info{color:#6b7280;font-size:.95em;margin:1rem 0;padding:1rem;background:#fff;border-radius:8px;border-left:4px solid #2563eb}.preview-section{margin-top:2rem;padding:2rem;background:#fff;border-radius:12px;box-shadow:0 4px 12px #00000014}.preview-section h2{text-align:center;color:#1f2937;margin-top:0}.preview-section img{max-width:100%;max-height:500px;border-radius:8px;box-shadow:0 4px 12px #0000001a;display:block;margin:1.5rem auto}.preview-section video{max-width:100%;max-height:500px;border-radius:8px;box-shadow:0 4px 12px #0000001a;display:block;margin:1.5rem auto;background:#000}.error-message{color:#ef4444;background:#fee2e2;padding:1rem;border-radius:8px;margin:1rem 0;border-left:4px solid #ef4444;font-weight:500}.success-message{color:#059669;background:#d1fae5;padding:1rem;border-radius:8px;margin:1rem 0;border-left:4px solid #10b981;font-weight:500}.loading{text-align:center;padding:3rem;color:#6b7280;font-size:1.1em}.empty-state{text-align:center;padding:3rem;color:#9ca3af}.empty-state p{font-size:1.1em;margin:0}.content-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:2rem;margin-top:2rem}.media-card{border:1px solid #e5e7eb;border-radius:10px;padding:1rem;background:#fff;transition:all .3s ease;box-shadow:0 2px 8px #0000000d;overflow:hidden;cursor:pointer}.media-card:hover{box-shadow:0 8px 20px #0000001f;border-color:#2563eb;transform:translateY(-4px)}.media-card img,.media-card video{width:100%;height:200px;object-fit:cover;border-radius:8px;display:block;background:#f3f4f6}.media-card p{margin:1rem 0 0;font-size:.9em;color:#6b7280;text-align:center}.stats{display:flex;justify-content:space-around;margin:2rem 0;padding:1.5rem;background:linear-gradient(135deg,#f3f4f6,#e5e7eb);border-radius:10px}.stat-item{text-align:center}.stat-item .number{font-size:2em;font-weight:800;color:#2563eb;display:block}.stat-item .label{color:#6b7280;font-size:.9em;margin-top:.5rem}.progress-bar{width:100%;height:6px;background:#e5e7eb;border-radius:3px;overflow:hidden;margin-top:1rem}.progress-fill{height:100%;background:linear-gradient(90deg,#2563eb,#10b981);width:0%;transition:width .3s ease}.progress-text{font-size:.875rem;color:#6b7280;margin-top:.5rem;text-align:right}.modal-overlay{position:fixed;inset:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{position:relative;background:#fff;border-radius:12px;max-width:95vw;max-height:95vh;display:flex;flex-direction:column;overflow:auto;animation:slideUp .3s ease}.modal-close-btn{position:absolute;top:1rem;right:1rem;background:#00000080;border:none;color:#fff;font-size:2rem;cursor:pointer;border-radius:50%;width:3rem;height:3rem;display:flex;align-items:center;justify-content:center;z-index:1001;transition:background .2s;padding:0;line-height:1}.modal-close-btn:hover{background:#000000b3}.modal-image{max-width:100%;max-height:85vh;object-fit:contain}.modal-video{max-width:100%;max-height:85vh}.modal-delete-btn{margin-top:1rem;padding:.5rem 1rem;background-color:#ef4444;color:#fff;border:none;border-radius:6px;font-weight:600;cursor:pointer;transition:all .3s ease}.modal-delete-btn:hover{background-color:#dc2626;box-shadow:0 4px 12px #ef44444d}.filter-section{background:linear-gradient(135deg,#f9fafb,#f3f4f6);padding:1.5rem;border-radius:12px;margin-bottom:2rem;border:1px solid #e5e7eb}.filter-group{margin-bottom:1.5rem}.filter-group:last-child{margin-bottom:0}.filter-group label{display:block;font-weight:600;margin-bottom:.75rem;color:#374151;font-size:.95rem}.button-group{display:flex;flex-wrap:wrap;gap:.5rem}.filter-button{padding:.5rem 1rem;border-radius:6px;border:2px solid #d1d5db;background:#fff;color:#4b5563;font-weight:600;cursor:pointer;transition:all .3s ease;font-size:.85rem}.filter-button:hover{border-color:#2563eb;color:#2563eb;background:#eff6ff}.filter-button.active{background:linear-gradient(135deg,#2563eb,#1e40af);color:#fff;border-color:#1e40af;box-shadow:0 2px 8px #2563eb33}.date-inputs{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.date-inputs input{padding:.5rem .75rem;border:2px solid #d1d5db;border-radius:6px;font-size:.95rem;transition:all .3s ease}.date-inputs input:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a}.date-inputs span{color:#6b7280;font-weight:600;padding:0 .5rem}.delete-button{padding:.4rem .8rem;background-color:#ef4444;color:#fff;border:none;border-radius:4px;font-weight:600;cursor:pointer;font-size:.85rem;transition:all .3s ease}.delete-button:hover{background-color:#dc2626;box-shadow:0 2px 8px #ef44444d}.delete-button:active{background-color:#b91c1c}@media(max-width:768px){.App{padding:1.5rem}.navigation{flex-direction:column;gap:1rem}.nav-group{width:100%;flex-direction:row;flex-wrap:wrap;justify-content:center}.nav-group h3{width:100%}.nav-button{flex:1 1 auto;min-width:120px}.upload-section,.capture-section{padding:2rem 1rem}.camera-controls,.capture-controls{flex-direction:column}.capture-button{width:100%}.content-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem}.stats{flex-direction:column;gap:1rem}.filter-section{padding:1rem}.button-group{flex-direction:column}.filter-button{width:100%}.date-inputs{flex-direction:column;align-items:stretch}.date-inputs input{width:100%}.date-inputs span{display:none}table{font-size:.85rem}.delete-button{padding:.3rem .6rem;font-size:.75rem}}
