body{margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#fafafa;color:#333;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;line-height:1.6}.App{min-height:100vh}.container{margin:0 auto;max-width:1200px;padding:0 20px}.page-header{background-color:#fff;border-bottom:1px solid #e1e1e1;margin-bottom:40px;padding:20px 0}.page-title{color:#2c2c2c;font-size:2.5rem;font-weight:300;letter-spacing:-.5px;margin-bottom:8px}.page-subtitle{color:#666;font-size:1.1rem;font-weight:400}.form-container{background:#fff;border-radius:8px;box-shadow:0 2px 10px #00000014;margin:0 auto;max-width:400px;padding:40px}.form-group{margin-bottom:24px}.form-label{color:#2c2c2c;display:block;font-size:.95rem;font-weight:500;margin-bottom:8px}.form-input{background-color:#fafafa;border:2px solid #e1e1e1;border-radius:6px;font-size:1rem;padding:12px 16px;transition:border-color .2s ease;width:100%}.form-input:focus{background-color:#fff;border-color:#2c2c2c;outline:none}.form-textarea{background-color:#fafafa;border:2px solid #e1e1e1;border-radius:6px;font-family:inherit;font-size:1rem;min-height:120px;padding:12px 16px;resize:vertical;transition:border-color .2s ease;width:100%}.form-textarea:focus{background-color:#fff;border-color:#2c2c2c;outline:none}.btn{background-color:#2c2c2c;border:2px solid #2c2c2c;border-radius:6px;color:#fff;cursor:pointer;display:inline-block;font-size:1rem;font-weight:500;line-height:1.4;padding:12px 24px;text-align:center;text-decoration:none;transition:all .2s ease}.btn:hover{background-color:#1a1a1a;border-color:#1a1a1a;transform:translateY(-1px)}.btn:disabled{cursor:not-allowed;opacity:.6;transform:none}.btn-secondary{background-color:initial;border-color:#2c2c2c;color:#2c2c2c}.btn-secondary:hover{background-color:#2c2c2c;color:#fff}.btn-danger{background-color:#dc3545;border-color:#dc3545}.btn-danger:hover{background-color:#c82333;border-color:#c82333}.btn-large{font-size:1.1rem;padding:16px 32px}.card{background:#fff;border:1px solid #e1e1e1;border-radius:8px;box-shadow:0 2px 10px #00000014;margin-bottom:24px;padding:24px}.card-header{border-bottom:1px solid #e1e1e1;margin-bottom:20px;padding-bottom:16px}.card-title{color:#2c2c2c;font-size:1.5rem;font-weight:500;margin-bottom:4px}.card-subtitle{color:#666;font-size:.95rem}.grid{grid-gap:24px;display:grid;gap:24px}.grid-2{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.grid-3{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.file-upload-area{background-color:#fafafa;border:2px dashed #ccc;border-radius:8px;cursor:pointer;padding:40px 20px;text-align:center;transition:all .2s ease}.file-upload-area.drag-over,.file-upload-area:hover{background-color:#f0f0f0;border-color:#2c2c2c}.file-upload-text{color:#666;font-size:1.1rem;margin-bottom:8px}.file-upload-hint{color:#999;font-size:.9rem}.status-badge{border-radius:20px;display:inline-block;font-size:.8rem;font-weight:500;letter-spacing:.5px;padding:4px 12px;text-transform:uppercase}.status-uploaded{background-color:#e3f2fd;color:#1976d2}.status-downloaded{background-color:#e8f5e8;color:#388e3c}.status-expired{background-color:#ffebee;color:#d32f2f}.status-archived{background-color:#f3e5f5;color:#7b1fa2}.nav-header{align-items:center;border-bottom:1px solid #e1e1e1;display:flex;justify-content:space-between;margin-bottom:32px;padding:16px 0}.nav-brand{color:#2c2c2c;font-size:1.5rem;font-weight:500;text-decoration:none}.nav-actions{align-items:center;display:flex;gap:16px}.table{border-collapse:collapse;margin-top:16px;width:100%}.table td,.table th{border-bottom:1px solid #e1e1e1;padding:12px 16px;text-align:left}.table th{background-color:#fafafa;color:#2c2c2c;font-size:.9rem;font-weight:500;letter-spacing:.5px;text-transform:uppercase}.table tr:hover{background-color:#f8f9fa}.text-center{text-align:center}.text-right{text-align:right}.mb-4{margin-bottom:24px}.mt-4{margin-top:24px}.loading{align-items:center;color:#666;display:flex;height:200px;justify-content:center}.error{background-color:#ffebee;color:#dc3545}.error,.success{border-radius:6px;margin-bottom:16px;padding:12px 16px}.success{background-color:#e8f5e8;color:#388e3c}.photo-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));margin-top:20px}.photo-item{background-color:#fff;border:2px solid #e1e1e1;border-radius:8px;cursor:pointer;overflow:hidden;position:relative;transition:all .2s ease}.photo-item:hover{border-color:#2c2c2c;box-shadow:0 4px 16px #0000001a;transform:translateY(-2px)}.photo-item.selected{border-color:#2c2c2c;box-shadow:0 4px 16px #00000026}.photo-checkbox{left:8px;position:absolute;top:8px;z-index:2}.photo-checkbox input{cursor:pointer;height:18px;width:18px}.photo-thumbnail{align-items:center;background-color:#f8f9fa;display:flex;height:200px;justify-content:center;overflow:hidden;width:100%}.photo-thumbnail img{height:100%;object-fit:cover;width:100%}.photo-placeholder{color:#999;font-size:2rem}.photo-info{border-top:1px solid #e1e1e1;padding:12px}.photo-name{color:#2c2c2c;font-size:.9rem;font-weight:500;margin-bottom:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.photo-details{color:#666;display:flex;flex-wrap:wrap;font-size:.8rem;gap:4px}@media (max-width:768px){.container{padding:0 16px}.page-title{font-size:2rem}.form-container{padding:24px}.nav-header{flex-direction:column;gap:16px}.nav-actions{justify-content:center;width:100%}.grid-2,.grid-3{grid-template-columns:1fr}.photo-grid{gap:12px;grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.photo-thumbnail{height:150px}}